美文网首页
Flask02.Flask对象初始化参数

Flask02.Flask对象初始化参数

作者: 意爹闯天涯 | 来源:发表于2019-09-29 16:07 被阅读0次

Flask初始化对象时除了可以传入模块名,还可以传入以下参数:

  • 静态目录Url路径static_url_path
  • 静态目录名称static_folder
  • 模板路径名称template_folder

静态目录是Flask服务器提供给用户可直接访问的目录,一般存放静态资源,如html、css、js、图片等。
默认情况下静态目录的名称为static,只有flask服务器对应的静态目录中存放的静态资源才能供用户直接通过URL访问。为了说明这个规则,我们举例来说明以下。
项目下创建static目录及static2目录,static目录放置静态网页1.html,'static2'目录防止静态网页2.html。

项目目录
1.html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>静态页面1</title>
</head>
<body>
第一个静态页面。
</body>
</html>

2.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>静态页面2</title>
</head>
<body>
第二个静态页面
</body>
</html>

index.py:

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return "hello flask"


if __name__ == '__main__':
    app.run()

index.py执行后,开启服务器被开启并输出:

D:\Code\Python\easyflask\venv\Scripts\python.exe D:/Code/Python/easyflask/index.py
 * Serving Flask app "index" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

开启服务器后,通过访问http://127.0.0.1:5000/static/1.html,可以看到static目录下的1.html能够正常访问。

1.html
访问http://127.0.0.1:5000/static2/2.html,出现404页面:
image.png
由此可以发现,只有服务器默认的静态目录下的静态文件才能够直接通过URL访问。
可以在初始化Flask对象时通过指定static_folder参数来改变默认的静态目录的名字,修改index.py:
from flask import Flask

app = Flask(__name__, static_folder="static2")


@app.route('/')
def index():
    return "hello flask"


if __name__ == '__main__':
    app.run()

代码中,将默认的静态文件目录修改为了static2,再次访问http://127.0.0.1:5000/static2/2.html,可以看到static2中的静态文件能够正常解析了。

2.html
如果不希望用户根据URL中的路径很轻易猜出静态目录的真实名称,可以通过static_url_path参数来为这个静态目录指定URL路径:
from flask import Flask

app = Flask(__name__, static_folder="static2", static_url_path='/hahah/wawawa')


@app.route('/')
def index():
    return "hello flask"


if __name__ == '__main__':
    app.run()

这里将项目根目录下的静态资源目录static2指定为URL路径为/hahah/wawawa,这是可通过http://127.0.0.1:5000/hahah/wawawa/2.html来访问2.html静态文件:

2.html
template_folder用于指定模板目录,用法和原理与static_folder参数相似,这里就不再赘述。

相关文章

  • Flask02.Flask对象初始化参数

    Flask初始化对象时除了可以传入模块名,还可以传入以下参数: 静态目录Url路径static_url_path ...

  • iOS 录音方法

    iOS 录音功能 初始化AVAudioRecorder 对象 初始化一个AVAudioRecorder 对象 参数...

  • Python学习

    flask对象初始化参数以及配置文件 1、flask对象初始化参数 在创建对象的时候,除了name表示当前模块的名...

  • python 标准库学习笔记《四》

    魔术方法 __ new __ 创建实例对象 __ init __ 将传入的参数用于初始化实例对象 Notes:...

  • Android设计模式---Builder设计模式

    一. 核心思想 对象参数比较多, 部分参数非必传, 初始化对象比较复杂时使用.例如OkHttp中, OkHttp...

  • 2017.9.14

    对象数组、指针 对象数组不能通过参数传递初始化,要么默认构造函数。要么构造函数有默认参数。 内存空间的访问方式: ...

  • Flask对象初始化参数

    Flask程序实例在创建对象的时候。需要默认传人当前Flask程序所指定的包(模块),Flask应用程序在创建的时...

  • 浅谈Servletconfig对象

    作用 ServletConfig对象: 主要是用于加载Servlet的初始化参数 ServletConfig的创建...

  • 什么时候使用 new 创建对象

    如果创建对象时不需要初始化参数,可以使用 new 来创建对象: Ref Programming with Obje...

  • 奇奇怪怪的BUG

    Double类型数据 初始化BigDecimal 使用Double作为参数构造BigDecimal对象,无法精确构...

网友评论

      本文标题:Flask02.Flask对象初始化参数

      本文链接:https://www.haomeiwen.com/subject/hsiayctx.html