Python全栈:flask的blueprint蓝图使用

举报
彭世瑜 发表于 2021/08/13 23:41:38 2021/08/13
【摘要】 Flask的 app 和 Blueprint蓝图 就好比 Django 的project 和 app, 可以使应用模块化 flask最小框架 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __na...

Flask的 app 和 Blueprint蓝图 就好比 Django 的project 和 app, 可以使应用模块化

flask最小框架

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world(): return 'Hello World!'

if __name__ == '__main__': app.run()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

定义蓝图

# api/main.py

from flask import Blueprint

app_api = Blueprint(name="app_api", import_name=__name__)

@app_api.route("/")
def show(): return "<h1>hello world app_api<h1>"


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

注册蓝图

在最小框架中修改

# run.py

from flask import Flask

# 引入蓝图文件
from demo.api.main import app_api

app = Flask(__name__)

@app.route('/')
def hello_world(): return '<h1>Hello World! index<h1>'

# 注册蓝图
app.register_blueprint(blueprint=app_api, url_prefix='/api')

if __name__ == '__main__': app.run(host="127.0.0.1", port=5002)

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

访问测试:
http://127.0.0.1:5002/ -》 Hello World! index
http://127.0.0.1:5002/api/ -》 hello world app_api

so eazy!!!

静态文件和模板文件

在定义蓝图中修改


app_api = Blueprint(name="app_api", import_name=__name__, static_folder='static',  # 静态文件 template_folder='templates'  # 模板文件夹 )


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

重定向

run.py 文件中修改

@app.route('/hello')
def hello(): return redirect(url_for("app_api.hello_world"))

  
 
  • 1
  • 2
  • 3

404

run.py 文件中修改

@app.errorhandler(404)
def page_not_found(e): return "<h1>404<h1>"

  
 
  • 1
  • 2
  • 3

参考文章:
使用蓝图的模块化应用

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/80599979

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。