Flask 静态文件、模板文件设置

2019-10-28 17:28:52 浏览数 (1)

需求

Flask默认的设置

  • 静态文件的默认文件夹:static
  • 静态文件的默认访问前缀:/static
  • 模板文件的默认文件夹:templates

在Django项目中,如果需要访问静态文件,默认则是使用 /static 的前缀来进行访问。那么对于Flask来说,也是一样的。

那么如果需要修改默认的配置,应该怎么去设置呢?

可以在创建app的时候使用以下参数进行设置:

代码语言:javascript复制
# 实例化app,参数如下:
# import_name,
# static_url_path=None,
# static_folder="static",
# static_host=None,
# host_matching=False,
# subdomain_matching=False,
# template_folder="templates",
# instance_path=None,
# instance_relative_config=False,
# root_path=None,
app = Flask(import_name=__name__,
            static_url_path='/python', # 配置静态文件的访问 url 前缀
            static_folder='static',    # 配置静态文件的文件夹
            template_folder='templates') # 配置模板文件的文件夹

配置示例

在Flask的项目中的static目录下创建一个index.html

编写app.py的代码

代码语言:javascript复制
from flask import Flask

# 创建flask的应用对象
# __name__表示当前的模块名称
# 模块名: flask以这个模块所在的目录为根目录,默认这个目录中的static为静态目录,templates为模板目录
app = Flask(__name__)

# 定义url请求路径
@app.route('/')
def hello_world():
    """定义视图函数"""
    return 'Hello World!'

if __name__ == '__main__':
    # 启动flask
    app.run()

访问index.html

启动flask服务,访问 http://127.0.0.1:5000/static/index.html

可以看到默认访问index.html的路径是/static/index.html

在app.py设置静态文件的访问路径以及模板文件夹参数

测试访问修改前缀后的index.html

访问 http://127.0.0.1:5000/python/index.html

代码语言:javascript复制
# 导入Flask类
from flask import Flask

# 实例化app,参数如下:
# import_name,
# static_url_path=None,
# static_folder="static",
# static_host=None,
# host_matching=False,
# subdomain_matching=False,
# template_folder="templates",
# instance_path=None,
# instance_relative_config=False,
# root_path=None,
app = Flask(import_name=__name__,
            static_url_path='/python', # 配置静态文件的访问 url 前缀
            static_folder='static',    # 配置静态文件的文件夹
            template_folder='templates') # 配置模板文件的文件夹

# route()方法用于设定路由;类似spring路由配置
@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    # app.run(host, port, debug, options)
    # 默认值:host=127.0.0.1, port=5000, debug=false
    app.run()

0 人点赞