亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Python web框架Flask藍圖的使用

標簽:
Java Python

首先,蓝图通俗理解就是对于视图方法模块化的一个很好的工具
一、先来看一下没使用蓝图中的视图方法

#views.py
 1 from app import app 2 
 3 
 4 @app.route('/user/index') 5 def index(): 6     return 'user_index'
 7 
 8 @app.route('/user/show') 9 def show():10     return 'user_show'11 12 @app.route('/user/add')13 def add():14     return 'user_add'15 16 @app.route('/admin/index')17 def adminindex():18     return 'admin_index'19 20 @app.route('/admin/show')21 def adminshow():22     return 'admin_show'23 24 @app.route('/admin/add')25 def adminadd():26     return 'admin_add'#从视图中可以看到admin、user两个用户的三个方法

这样写肯定是没问题的,一个方法一个视图,但是这样就不是违背的python模块化和代码优美的初衷了嘛,当然我还是要考虑以下几点问题的

一、如果admin和user两个用户不止三个功能而是几百个功能,导致代码也有几万行?
二、如果是大型项目所有的功能都是分不同模块和开发人员开发,都在一个views.py里堆代码,导致提交冲突怎么办
三、如果以后没有了damin和user两个用户模块了,我还要一行一行删除相互功能的代码,岂不是很low

所以为了解决以上的矛盾,就有了蓝图这个工具:blueprint

什么是蓝图?
一个蓝图用于定义的单个应用的视图与静态资源等等
什么时候用蓝图?
蓝图最大的凶器就是把不同的应用拆分成不同的组件,把user和adim拆分不同的主键这样就方便多了
代码上!!

#admin.pyfrom flask import Blueprint,render_template, request

admin = Blueprint('admin',__name__)

@admin.route('/index')def index():    return render_template('admin/index.html')

@admin.route('/add')def add():    return 'admin_add'@admin.route('/show')def show():    return 'admin_show'
#user.pyfrom flask import Blueprint, render_template, redirect

user = Blueprint('user',__name__)

@user.route('/index')def index():    return render_template('user/index.html')

@user.route('/add')def add():    return 'user_add'@user.route('/show')def show():    return 'user_show'

把视图中的两个应用分别用蓝图拆分成两个不同的.py文件,是不是方便多了
最后在看一下views.py中的代码

from app import appfrom .admin import adminfrom .user import user#这里分别给app注册了两个蓝图admin,user#参数url_prefix='/xxx'的意思是设置request.url中的url前缀,#即当request.url是以/admin或者/user的情况下才会通过注册的蓝图的视图方法处理请求并返回app.register_blueprint(admin,url_prefix='/admin')
app.register_blueprint(user, url_prefix='/user')

在这里就不难看出蓝图对于稍微大点的项目的重要地位的


作者:顾四秋
链接:https://www.jianshu.com/p/57a0b26ce4a2


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消