FLASK项目目录(模仿django)
1.
app 放static和templates文件夹,以及应用的文件夹,图中admin文件夹可以简单看成一个应用
|____ admin 应用,功能模块
|____ static 静态文件存放位置
|____ templates 模板文件存放位置
|____ __init__.py
utils 工具文件存放位置
app.py 项目启动文件
config.py 配置文件
2.各个文件内容
app/admin/views.py
from flask.blueprints import Blueprint
u = Blueprint('user', __name__, url_prefix='/user') # 创建蓝图,并加了/user前缀,url_prefix参数必须已 / 开头不然会报错,蓝图前缀主要帮助我们区分功能模块,一个功能模块对应一个蓝图前缀如用户相关的 前缀可为 /user 商品相关的可为 /goods 这类似于django的路由分发
@u.route('/')
def us():
return 'user'
app/init.py
from flask import Flask
from .admin.views import u
def create_app():
app = Flask(__name__)
app.register_blueprint(u) # 注册蓝图
return app
app.py
from app import create_app
app = create_app()
if __name__ == '__main__':
app.run(debug=True)
3.好处
这么分的好处是让app.py文件代码量减少,后面添加功能模块的时候更加方便,只需要将功能模块的包直接粘贴到app中即可,就像admin一样。
4.流程讲解
项目启动时:
(1)app.py: 首先会去app包下导入一个create_app函数,调用了app包,所以app/__init__.py中顶格写的代码都会加载
(2)app/__init__.py:此时__init__.py中有Flsak类以及admin/views.py下的顶格写的代码还有一个create_app函数
(3)app/__init__.py/create_app:create_app函数实现了创建一个Flask app应用,以及注册了一个蓝图,并返回app
(4)到此是运行项目时app.py中的from app import create_app所做的事情
(5)app.py: app = create_app()运行了create_app函数得到了一个flask对象 app
(6)app.py: app.run(debug=True)启动项目
(7)浏览器中访问 http://127.0.0.1:5000/user/ 就可以看到返回的内容
'''
如果想要访问 http://127.0.0.1:5000就得到访问内容
我们可以去掉蓝图中的url_prefix参数,即不需要蓝图前缀
from flask.blueprints import Blueprint
u = Blueprint('user', __name__) # 创建蓝图,并加了/user前缀,url_prefix参数必须已 / 开头不然会报错
@u.route('/')
def us():
return 'user'
'''
标签:__,蓝图,FLASK,app,py,django,user,create,模仿
From: https://www.cnblogs.com/chunyouqudongwuyuan/p/17431915.html