前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flask蓝图小结

flask蓝图小结

作者头像
python与大数据分析
发布2022-12-13 09:48:48
2590
发布2022-12-13 09:48:48
举报
文章被收录于专栏:python与大数据分析

是该考虑将项目分解的时候了,这个时候会用到蓝图。

Flask 用 蓝图(blueprints) 的概念来在一个应用中或跨应用制作应用组件和支持通用的模式。蓝图很好地简化了大型应用工作的方式,并提供给 Flask 扩展在应用上注册操作的核心方法。一个 Blueprint 对象与 Flask 应用对象的工作方式很像,但它确实不是一个应用,而是一个描述如何构建或扩展应用的 蓝图 。

蓝图在组织flask代码时,有两种形式

  1. 功能式架构
  2. 分区式架构
  3. 功能式架构是静态资源集中化管理

分区式架构,适用于子模块有特殊需要的情况,在创建蓝图构造Blueprint对象时,可以指定static和templates, 其结构类似于下面这样

其实网上的抄来抄去的,未必自己都很明白,我个人的看法是功能式架构适合强耦合的,是一个系统各个功能模块比较紧凑、依赖比较深,且需要采用统一的格调布局。分布式架构适合松耦合的场景,比如前后台和api管理。

这次我打算要做的事情是实现一个admin后台管理系统、一个home前端信息系统和一个restfull api服务管理,理论上将应该用三个工程更为合适一些。

/admin/__init__.py,创建一个蓝图对象

代码语言:javascript
复制
from flask import Blueprint

admin_blue = Blueprint('admin', __name__, url_prefix='/admin')
from . import views

/admin/views.py,创建蓝图内的路由

代码语言:javascript
复制
# admin 模块
from admin import admin_blue


@admin_blue.route('/register')
def register():
    return 'admin register'
@admin_blue.route('/login')
def login():
    return 'admin login'
@admin_blue.route('/modify_password')
def modify_password():
    return 'admin modify_password'
@admin_blue.route('/')
def index():
    return 'admin index'

/home/__init__.py,创建一个蓝图对象

代码语言:javascript
复制
from flask import Blueprint

home_blue = Blueprint('home', __name__, url_prefix='/home')
from . import views

/home/views.py,创建蓝图内的路由

代码语言:javascript
复制
# home模块
from home  import home_blue

@home_blue.route('/register')
def register():
    return 'home register'
@home_blue.route('/login')
def login():
    return 'home login'
@home_blue.route('/modify_password')
def modify_password():
    return 'home modify_password'
@home_blue.route('/')
def index():
    return 'home index'

/api/__init__.py,创建一个蓝图对象

代码语言:javascript
复制
from flask import Blueprint

api_blue = Blueprint('api', __name__, url_prefix='/api')
from . import views

/api/views.py,创建蓝图内的路由

代码语言:javascript
复制
# api模块
from api  import api_blue

@api_blue.route('/getuser')
def getuser():
    return 'getuser'
@api_blue.route('/getorgination')
def getorgination():
    return 'getorgination'

app.py,注册蓝图

代码语言:javascript
复制
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():  # put application's code here
    return 'Hello World!'
from admin import admin_blue
from home import home_blue
from api import api_blue

app.register_blueprint(admin_blue)
app.register_blueprint(home_blue)
app.register_blueprint(api_blue)

if __name__ == '__main__':
    app.run()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python与大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档