flask中使用藍圖將路由分開寫在不同檔案執行個體解析,flask藍圖

來源:互聯網
上載者:User

flask中使用藍圖將路由分開寫在不同檔案執行個體解析,flask藍圖

本文的內容主要是flask中使用藍圖將路由分開寫在不同檔案的相關介紹,具體如下。

Flask 用 藍圖(blueprints) 的概念來在一個應用中或跨應用製作應用組件和支援通用的模式。藍圖很好地簡化了大型應用工作的方式,並提供給 Flask 擴充在應用上註冊操作的核心方法。一個Blueprint 對象與Flask 應用對象的工作方式很像,但它確實不是一個應用,而是一個描述如何構建或擴充應用的藍圖 。

Flask 中的藍圖為這些情況設計:

把一個應用分解為一個藍圖的集合。這對大型應用是理想的。一個項目可以執行個體化一個應用對象,初始化幾個擴充,並註冊一集合的藍圖。

以 URL 首碼和/或子網域名稱,在應用上註冊一個藍圖。 URL 首碼/子網域名稱中的參數即成為這個藍圖下的所有視圖函數的共同的視圖參數(預設情況下)。

在一個應用中用不同的 URL 規則多次註冊一個藍圖。

通過藍圖提供模板過濾器、靜態檔案、模板和其它功能。一個藍圖不一定要實現應用或者視圖函數。

初始化一個 Flask 擴充時,在這些情況中註冊一個藍圖。

Flask 中的藍圖不是即插應用,因為它實際上並不是一個應用——它是可以註冊,甚至可以多次註冊到應用上的操作集合。為什麼不使用多個應用對象?你可以做到那樣(見應用調度 ),但是你的應用的配置是分開的,並在 WSGI 層管理。

藍圖作為 Flask 層提供分割的替代,共用應用配置,並且在必要情況下可以更改所註冊的應用對象。它的缺點是你不能在應用建立後撤銷註冊一個藍圖而不銷毀整個應用對象。

以上內容來自Flask0.10.1文檔

測試專案結構:

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() 

總結

以上就是本文關於flask中使用藍圖將路由分開寫在不同檔案執行個體解析的全部內容,希望對大家有所協助。感興趣的朋友可以繼續參閱本站:

flask使用session儲存登入狀態及攔截未登入請求代碼

淺談flask截獲所有訪問及before/after_request修飾器

flask中主動拋出異常及統一異常處理程式碼範例

如有不足之處,歡迎留言指出。感謝朋友們對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.