flask中使用藍(lán)圖將路由分開寫在不同文件實(shí)例解析
本文的內(nèi)容主要是flask中使用藍(lán)圖將路由分開寫在不同文件的相關(guān)介紹,具體如下。
Flask 用 藍(lán)圖(blueprints) 的概念來在一個(gè)應(yīng)用中或跨應(yīng)用制作應(yīng)用組件和支持通用的模式。藍(lán)圖很好地簡(jiǎn)化了大型應(yīng)用工作的方式,并提供給 Flask 擴(kuò)展在應(yīng)用上注冊(cè)操作的核心方法。一個(gè)Blueprint 對(duì)象與Flask 應(yīng)用對(duì)象的工作方式很像,但它確實(shí)不是一個(gè)應(yīng)用,而是一個(gè)描述如何構(gòu)建或擴(kuò)展應(yīng)用的藍(lán)圖 。
Flask 中的藍(lán)圖為這些情況設(shè)計(jì):
把一個(gè)應(yīng)用分解為一個(gè)藍(lán)圖的集合。這對(duì)大型應(yīng)用是理想的。一個(gè)項(xiàng)目可以實(shí)例化一個(gè)應(yīng)用對(duì)象,初始化幾個(gè)擴(kuò)展,并注冊(cè)一集合的藍(lán)圖。
以 URL 前綴和/或子域名,在應(yīng)用上注冊(cè)一個(gè)藍(lán)圖。 URL 前綴/子域名中的參數(shù)即成為這個(gè)藍(lán)圖下的所有視圖函數(shù)的共同的視圖參數(shù)(默認(rèn)情況下)。
在一個(gè)應(yīng)用中用不同的 URL 規(guī)則多次注冊(cè)一個(gè)藍(lán)圖。
通過藍(lán)圖提供模板過濾器、靜態(tài)文件、模板和其它功能。一個(gè)藍(lán)圖不一定要實(shí)現(xiàn)應(yīng)用或者視圖函數(shù)。
初始化一個(gè) Flask 擴(kuò)展時(shí),在這些情況中注冊(cè)一個(gè)藍(lán)圖。
Flask 中的藍(lán)圖不是即插應(yīng)用,因?yàn)樗鼘?shí)際上并不是一個(gè)應(yīng)用——它是可以注冊(cè),甚至可以多次注冊(cè)到應(yīng)用上的操作集合。為什么不使用多個(gè)應(yīng)用對(duì)象?你可以做到那樣(見應(yīng)用調(diào)度 ),但是你的應(yīng)用的配置是分開的,并在 WSGI 層管理。
藍(lán)圖作為 Flask 層提供分割的替代,共享應(yīng)用配置,并且在必要情況下可以更改所注冊(cè)的應(yīng)用對(duì)象。它的缺點(diǎn)是你不能在應(yīng)用創(chuàng)建后撤銷注冊(cè)一個(gè)藍(lán)圖而不銷毀整個(gè)應(yīng)用對(duì)象。
以上內(nèi)容來自Flask0.10.1文檔
測(cè)試項(xiàng)目結(jié)構(gòu):

user.py:
#coding:utf-8
#user
from 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'
admin.py:
# coding:utf-8
#admin.py
from 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'
view.py:
# coding:utf-8 from flask import Flask,request,render_template from admin.admin import admin from user.user import user app=Flask(__name__) app.register_blueprint(admin,url_prefix='/admin') app.register_blueprint(user, url_prefix='/user') if __name__ == '__main__': app.run()

總結(jié)
以上就是本文關(guān)于flask中使用藍(lán)圖將路由分開寫在不同文件實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
《flask使用session保存登錄狀態(tài)及攔截未登錄請(qǐng)求代碼》
《淺談flask截獲所有訪問及before/after_request修飾器》
《flask中主動(dòng)拋出異常及統(tǒng)一異常處理代碼示例》
如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Python?PyWebIO開發(fā)Web應(yīng)用實(shí)例探究
這篇文章主要為大家介紹了Python?PyWebIO開發(fā)Web應(yīng)用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Python 批量下載陰陽(yáng)師網(wǎng)站壁紙
學(xué)習(xí)要始于興趣,自己學(xué)習(xí)python的一大初衷是希望能用于寫一些簡(jiǎn)單的游戲腳本,能服務(wù)于生活。所以決定試著直接從爬取我最愛玩的陰陽(yáng)師網(wǎng)站的一些壁紙開始2021-05-05
Python調(diào)用jar包方法實(shí)現(xiàn)過程解析
這篇文章主要介紹了Python調(diào)用jar包方法實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
python如何實(shí)現(xiàn)斐波那契數(shù)列
這篇文章主要介紹了python如何實(shí)現(xiàn)斐波那契數(shù)列問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
pandas 數(shù)據(jù)類型轉(zhuǎn)換的實(shí)現(xiàn)
這篇文章主要介紹了pandas 數(shù)據(jù)類型轉(zhuǎn)換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python 數(shù)據(jù)類(dataclass)的具體使用
本文主要介紹了python 數(shù)據(jù)類(dataclass)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
對(duì)Python中GIL(全局解釋器鎖)的一點(diǎn)理解淺析
首先需要明確的一點(diǎn)是GIL并不是Python的特性,它是在實(shí)現(xiàn)Python解析器(CPython)時(shí)所引入的一個(gè)概念,下面這篇文章主要給大家介紹了關(guān)于對(duì)Python中GIL的一點(diǎn)理解,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05

