這篇文章主要為大家展示了“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中如何使用藍圖將路由分開寫在不同文件”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。