python大佬養成計劃----Flask藍圖

藍圖

以前咱們已經經過代碼瞭解了一些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'

運行結果
圖片描述
圖片描述對象

相關文章
相關標籤/搜索