以前咱們已經經過代碼瞭解了一些Flask基本的用法,如今出現一個問題,咱們要作的功能愈來愈多,路由是否是都要放在run文件中呢?例如咱們在不一樣的文件都定義了一些路由,若是想要訪問他們,是否是要開啓不少個不一樣的服務呢?flask
Flask中提供了藍圖,專門用做Flask的模塊化。app
Flask使用藍圖的概念來製做應用程序組件和支持應用程序內部或跨應用程序的通用模式。藍圖能夠大大簡化大型應用程序的工做方式,併爲Flask擴展提供了在應用程序上註冊操做的中心手段。Blueprint對象的工做方式與Flask應用程序對象相似,但實際上它不是一個應用程序。相反,它是如何構造或擴展應用程序的藍圖。模塊化
總之,藍圖能夠使咱們的程序更加模塊化,不一樣功能的路由能夠放在不一樣的模塊下,最後集中到啓動類中。函數
首先,新建一個flask項目文件,創建文件結構以下圖所示:
url
from app.movie.view import movie as movie_bp from app.tag.view import tag as tag_bp from flask import Flask if __name__ == '__main__': app = Flask(__name__) app.register_blueprint(tag_bp,url_prefix='/tag') app.register_blueprint(movie_bp,url_prefix='/movie') app.run(port=9099)
全部的路由和視圖函數依舊單獨寫在一個文件裏面,這裏起名view.pyspa
from flask import Blueprint tag = Blueprint('tag',__name__) @tag.route('/') def index(): return 'ok' @tag.route('/add/') def add(): return 'tag add'
全部的路由和視圖函數依舊單獨寫在一個文件裏面,這裏起名view.pycode
from flask import Blueprint movie = Blueprint('movie',__name__) @movie.route('/') def index(): return 'ok' @movie.route('/add/') def add(): return 'movie add'
運行結果
對象