FLASK项目目录(模仿django)

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'
'''
posted @ 2023-05-25 17:06  春游去动物园  阅读(42)  评论(0编辑  收藏  举报