蓝图blueprint
帮助我们对flask程序进行目录结构的划分
flask mtv
django mvc
- before_request
from flask import Flask def create_app(): app = Flask(__name__) @app.before_request def f1(): print('f1') from .views.account import account from .views.user import user app.register_blueprint(account) app.register_blueprint(user) return app
from flask import Blueprint,url_for # 创建了一个蓝图对象 account = Blueprint('account',__name__) @account.before_request def xx(): print('xx')
- url_for
from flask import Blueprint,url_for # 创建了一个蓝图对象 account = Blueprint('account',__name__) @account.before_request def xx(): print('xx') @account.route('/login') def login(): url = url_for('account.register') print(url) return 'Login' @account.route('/register') def register(): return 'register'
目录结构
创建完成后显示一个crm文件
需要手动创建下图目录结构
例子
创建__init__.py文件
from flask import Flask def create_app(): app = Flask(__name__) @app.before_request def f1(): print('f1') from .views.account import account from .views.user import user app.register_blueprint(account) app.register_blueprint(user) return app
创建manage.py运行文件
from crm import create_app app = create_app() if __name__ == '__main__': app.run(port=8000)
创建static用来存放静态文件
创建templates用来存放模板文件
创建views用写视图
在视图创建两个文件
account.py
from flask import Blueprint,url_for # 创建了一个蓝图对象 account = Blueprint('account',__name__) @account.before_request def xx(): print('xx') @account.route('/login') def login(): url = url_for('account.register') print(url) return 'Login' @account.route('/register') def register(): return 'register'
user.py
from flask import Blueprint # 创建了一个蓝图对象 user = Blueprint('user',__name__) @user.route('/user/list') def user_list(): return 'user list' @user.route('/user/add') def user_add(): return 'user add'