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

匿名 (未验证) 提交于 2019-12-03 00:15:02

需求

Flask默认的设置

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

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

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

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

# 实例化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的代码

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

# 导入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()  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!