flask中使用藍(lán)圖將路由分開寫在不同文件實例解析
本文的內(nèi)容主要是flask中使用藍(lán)圖將路由分開寫在不同文件的相關(guān)介紹,具體如下。
Flask 用 藍(lán)圖(blueprints) 的概念來在一個應(yīng)用中或跨應(yīng)用制作應(yīng)用組件和支持通用的模式。藍(lán)圖很好地簡化了大型應(yīng)用工作的方式,并提供給 Flask 擴(kuò)展在應(yīng)用上注冊操作的核心方法。一個Blueprint 對象與Flask 應(yīng)用對象的工作方式很像,但它確實不是一個應(yīng)用,而是一個描述如何構(gòu)建或擴(kuò)展應(yīng)用的藍(lán)圖 。
Flask 中的藍(lán)圖為這些情況設(shè)計:
把一個應(yīng)用分解為一個藍(lán)圖的集合。這對大型應(yīng)用是理想的。一個項目可以實例化一個應(yīng)用對象,初始化幾個擴(kuò)展,并注冊一集合的藍(lán)圖。
以 URL 前綴和/或子域名,在應(yīng)用上注冊一個藍(lán)圖。 URL 前綴/子域名中的參數(shù)即成為這個藍(lán)圖下的所有視圖函數(shù)的共同的視圖參數(shù)(默認(rèn)情況下)。
在一個應(yīng)用中用不同的 URL 規(guī)則多次注冊一個藍(lán)圖。
通過藍(lán)圖提供模板過濾器、靜態(tài)文件、模板和其它功能。一個藍(lán)圖不一定要實現(xiàn)應(yīng)用或者視圖函數(shù)。
初始化一個 Flask 擴(kuò)展時,在這些情況中注冊一個藍(lán)圖。
Flask 中的藍(lán)圖不是即插應(yīng)用,因為它實際上并不是一個應(yīng)用——它是可以注冊,甚至可以多次注冊到應(yīng)用上的操作集合。為什么不使用多個應(yīng)用對象?你可以做到那樣(見應(yīng)用調(diào)度 ),但是你的應(yīng)用的配置是分開的,并在 WSGI 層管理。
藍(lán)圖作為 Flask 層提供分割的替代,共享應(yīng)用配置,并且在必要情況下可以更改所注冊的應(yīng)用對象。它的缺點是你不能在應(yīng)用創(chuàng)建后撤銷注冊一個藍(lán)圖而不銷毀整個應(yīng)用對象。
以上內(nèi)容來自Flask0.10.1文檔
測試項目結(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)圖將路由分開寫在不同文件實例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
《flask使用session保存登錄狀態(tài)及攔截未登錄請求代碼》
《淺談flask截獲所有訪問及before/after_request修飾器》
《flask中主動拋出異常及統(tǒng)一異常處理代碼示例》
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
python項目報錯:bs4.FeatureNotFound:?Couldn‘t?find?a?tree?bu
這篇文章主要給大家介紹了python項目報錯:bs4.FeatureNotFound:?Couldn‘t?find?a?tree?builder?with?the?features?you?requests的解決方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09教你在Excel中調(diào)用Python腳本實現(xiàn)數(shù)據(jù)自動化處理的方法
Excel是全世界最流行的編程語言,Excel已經(jīng)可以實現(xiàn)編程語言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣,今天通過本文給大家介紹下Python數(shù)據(jù)自動化處理的相關(guān)知識,感興趣的朋友一起看看吧2022-02-02Python鼠標(biāo)事件及坐標(biāo)獲取窗口和屏幕坐標(biāo)
這篇文章主要介紹了Python編程中如何通過鼠標(biāo)事件及坐標(biāo)獲取窗口坐標(biāo)和屏幕坐標(biāo)的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10Python中xml和dict格式轉(zhuǎn)換的示例代碼
最近在做APP的接口,遇到XML格式的請求數(shù)據(jù),費了很大勁來解決,下面小編給大家分享下Python中xml和dict格式轉(zhuǎn)換問題,感興趣的朋友跟隨小編一起看看吧2019-11-11Python中的None與 NULL(即空字符)的區(qū)別詳解
這篇文章主要介紹了Python中的None與 NULL(即空字符)的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python設(shè)計模式結(jié)構(gòu)型代理模式
這篇文章主要介紹了Python設(shè)計模式結(jié)構(gòu)型代理模式,代理模式即Proxy?Pattern,為其他對象提供一種代理以控制對這個對象的訪問,下文內(nèi)容詳細(xì)介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-02-02