引言 本文介绍Flask中的蓝图相关知识。 学习内容:
- 蓝图的优点:将应用进行“模块化”。
1.概述
1.蓝图的优点
2.代码实现
1.代码实现
说明 此处:使用Tornado进行运行Flask服务
#!/usr/bin/env pytho# -*- coding: utf-8 -*-"""@author:xiecuihao@file:login.py@time:2022/04/16"""# 【step1】导入 蓝图[Blueprint]from flask import Blueprint as bp# 【step2】 声明-蓝图-->参数:定义蓝图的名字;导入__name__loginApp = bp("loginApp", __name__)# 【step3】定义:蓝图视图函数@loginApp.get("/")def login():return "hello login"# 【step3】定义:蓝图视图函数@loginApp.get("/login/login1")def login1():return "hello login1-ok"if __name__ == '__main__':pass
#!/usr/bin/env pytho# -*- coding: utf-8 -*-"""@author:xiecuihao@file:main.py@time:2022/04/16"""from flask import Flaskfrom flask_cors import CORSfrom api.login import loginApp # 【step4】【导入】蓝图-模块文件app = Flask(__name__)CORS(app) # 解决跨域# 处理中文乱码app.config['JSON_AS_ASCII'] = False# 【step5】 注册:蓝图对象app.register_blueprint(loginApp)# if __name__ == '__main__':# app.run(port=8806,host="0.0.0.0",debug=True)
2.运行结果
3.蓝图嵌套(不常用)
将蓝图对象cookieApp绑定(嵌套)到蓝图对象loginApp中;那么cookieApp的url路由则在loginApp路由后面。
1.代码实现
1.蓝图对象-cookieApp
#!/usr/bin/env pytho# -*- coding: utf-8 -*-"""@author:cooling@file:cookie.py@time:2022/04/16"""from flask import Blueprint as bpfrom flask import make_responsecookieKey="mp-cookie"cookieApp=bp("cookieApp",__name__,url_prefix="/cookie")@cookieApp.get("/set")def set_cookie():resp=make_response("设置cookie")resp.set_cookie(cookieKey,"myFlaskCookie-2022")return resp@cookieApp.get("/delete")def delete_cookie():resp=make_response("删除cookie")resp.delete_cookie(cookieKey)return respif __name__ == '__main__':pass
2.蓝图对象-loginApp
#!/usr/bin/env pytho# -*- coding: utf-8 -*-"""@author:cooling@file:login.py@time:2022/04/16"""# 【step1】导入 蓝图[Blueprint]from flask import Blueprint as bpfrom flask import make_response# 【step2】 声明-蓝图-->参数:定义蓝图的名字;导入__name__loginApp = bp("loginApp", __name__, url_prefix="/login")# 【step3】定义:蓝图视图函数@loginApp.get("/")def login():return "hello login"# 【step3】定义:蓝图视图函数@loginApp.get("/login1")def login1():return "hello login1-success2022"if __name__ == '__main__':pass
3.flask主模块-main
#!/usr/bin/env pytho# -*- coding: utf-8 -*-"""@author:cooling@file:main.py@time:2022/04/16"""import resource.flaskConfig as config1from flask import Flaskfrom flask_cors import CORSfrom api.login import loginApp # 【step4】【导入】蓝图-模块文件from api.cookie import cookieAppapp = Flask(__name__)CORS(app) # 解决跨域# 处理中文乱码# app.config['JSON_AS_ASCII'] = Falseapp.config.from_object(config1)# 【step5】 注册:蓝图对象loginApp.register_blueprint(cookieApp) # 将cookieApp嵌套绑定到loginApp上app.register_blueprint(loginApp)app.debug = True@app.get("/")def index():return "index-flask"# if __name__ == '__main__':# app.run(port=8806,host="0.0.0.0",debug=True)
2.运行结果


