蓝图与命名空间
小蓝图
构建业务功能可拆分的目录结构。
面试题:django的app和flask的蓝图有什么区别?
构建一个目录机构
首先,我对蓝图的理解相对通俗,就是觉得蓝图对于视图方法模块化、大项目协同开发过程中的一个很好的工具.
1.下图是我们通常情况下使用的项目组织结构
run启动文件
from app import create_app#create_app在app文件夹下的__init__中
app = create_app()
if __name__ == '__main__':
app.run()
__init__
的写法
from flask import Flask
from .views.my import xmy
from .views.wy import xwy
def create_app():
app = Flask(__name__)
app.secret_key = 'asdfaskdfjsd'
@app.route('/index')
def index():
return 'index'
#m没加命名空间 访问http://127.0.0.1:5000/f1返回v1_f1
app.register_blueprint(xmy)#注册进去
app.register_blueprint(xwy)
#加了命名空间访问http://127.0.0.1:5000/web/f1 返回v1_f1
# app.register_blueprint(xmy,url_prefix='/web')
# app.register_blueprint(xwy,url_prefix='/admin')
return app
views文件夹下 v1.py
from flask import Blueprint
xmy = Blueprint('v1',__name__)
@xmy.route('/f1')
def f1():
return 'v1_f1'
@xmy.route('/f2')
def f2():
return 'v1_f2'
views文件夹下 v2.py
from flask import Blueprint
xwy = Blueprint('v2',__name__)
@xwy.route('/f3')
def f3():
return 'v2_f3'
@xwy.route('/f4')
def f4():
return 'v2_f4'
非学,无以致疑;非问,无以广识