引言 本文介绍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 Flask
from flask_cors import CORS
from 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 bp
from flask import make_response
cookieKey="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 resp
if __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 bp
from 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 config1
from flask import Flask
from flask_cors import CORS
from api.login import loginApp # 【step4】【导入】蓝图-模块文件
from api.cookie import cookieApp
app = Flask(__name__)
CORS(app) # 解决跨域
# 处理中文乱码
# app.config['JSON_AS_ASCII'] = False
app.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)