本篇來了解一下 Flask 中 Blueprint 藍圖,什麼藍圖 。。就是一個分模塊的擴展而已,用來讓不同的 業務模塊api 分到不同的python文件中 而已,和 Spring mvc 的 class 級別 的@RequestMapping("/") 差不多。。
為什麼要引入 Blueprint 藍圖呢? 因為如果默認把API接口都寫到 一個py 文件裡面 那麼這個文件會越來越復雜,會越來越臃腫 導致 無法維護 ,所以按照正常的開發邏輯 也需要進行模塊的劃分 ,那麼就需要引入 Blueprint
需要先在環境中 使用 pip 安裝一下 Blueprint 擴展
pip install Blueprint
from flask import Flask
app = Flask(__name__)
@app.route('/')
def helloworld():
return 'Hello world python flask'
# 新版本應該是 不支持這樣啟動了
# if __name__ == '__main__':
# app.run()
根據業務 可以創建新的模塊 然後通過Blueprint 去注冊路由
from flask import Blueprint
user = Blueprint('user',__name__)
@user.route('/user/username')
def username():
return 'get username : johnny'
在入口文件中 把剛剛創建的 Blueprint 注冊上去
from flask import Flask
#引入 剛剛創建的 blueprint
from user import user
app = Flask(__name__)
#注冊到 flask app上
app.register_blueprint(user)
@app.route('/')
def helloworld():
return 'Hello world python flask'
# if __name__ == '__main__':
# app.run()
訪問:/user/username 得到如下:
訪問: / 得到如下:
使用 Blueprint很簡單 按照下面的流程
pip install Blueprint
創建 新模塊文件,在其中創建Blueprint對象 如:
# Blueprint兩個參數('藍圖名字',藍圖所在位置')
user = Blueprint('user',__name__)
Blueprint注冊到 Flask app上
#引入 剛剛創建的 blueprint
from user import user
app = Flask(__name__)
app.register_blueprint(user)
可以把Blueprint 理解為 Spring mvc 的 Class 級別 的@RequestMapping("/user") 差不多。。
歡迎大家訪問 個人博客 Johnny小屋
歡迎關注個人公眾號
首先要了解藍圖的作用,模擬場景在團隊開發過程中團隊每個人都在寫自己負責的功能模塊,那多個py文件模板,我們如果完成後需要運行是不是要運行多個服務?但是我們的項目是一個整體,而不是零散的,所以我們怎麼把 ...
""" 藍圖:為開發者提供的目錄結構 - 使用: 1. 根目錄創建一個跟項目名一樣的文件 - 創建後第一步,在這個文件夾中添加一個 __init__.py 的配置文件 - ...
藍圖的目的是實現 各個模塊的視圖函數寫在不同的py文件當中. 主視圖 中 導入 分路由視圖的模塊,並且注冊藍圖對象 分路由視圖中 利用 藍圖對象 的route 進行裝飾視圖函數 主路由視圖函數: #c ...
目錄 Flask - Flask的藍圖(BluePrint) 一. 初始Flask藍圖 進階Flask藍圖 使用藍圖做一個增刪改查 1.使用藍圖進行web應用搭建: 2.使用Flask藍圖,查看學生信 ...
Blog 項目源碼:https://github.com/JmilkFan/JmilkFan-s-Blog 目錄 目錄 前文列表 擴展閱讀 Blueprint 藍圖 定義一個藍圖 注冊一個藍圖 創建藍 ...
視頻01: flask框架:最上層是app,它就像一個插線板一樣,比如可以插入藍圖,還可以插入其他各種flask插件. 每個藍圖又可以插入很多視圖函數,並可指定靜態文件夾和模板文件夾. 好的代碼結構, ...
flask_Blueprint.py ''' flask中的Blueprint藍圖: (1)新建模塊,例如Bp1.py,Bp2.py,在模塊中創建藍圖實例 (2)通過app.register_blue ...
python Flask Flask是一個基於Python開發並且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架,對於Werkzeug本質是Socket服務端,其用於接收http請 ...
在使用flask進行一個項目編寫的時候,可能會有許多個模塊,如一個網站的前台(home)和後台(admin)模塊,如果把這兩個模塊都放在一個views.py文件之中,那麼最後views.py文件必然臃 ...
隨著flask的發展,flask框架越來越復雜,我們需要進行模塊化處理,因為之前學過python模塊化管理,我可以對一個flask程序進行簡單的模塊化處理. 我們都有一個博客程序,由此可知博客的前端界 ...
import java.util.Random; /** * 排序測試類 * * 排序算法的分類如下: * 1.插入排序(直接插入排序.折半插入排序.希爾排序): * 2.交換排 ...
//JS裡的一個回調.比如網頁上的某個按鈕點一下之後.JS會調用setKey這個方法. JSContext *context1 = [self.startView valueForKeyPath:@& ...
前提 linux環境下,當使用umount命令卸載掛載點時,會遇到“device is busy”提示,這時fuser就能查出誰在使用這個資源;當然umount –lf [掛載點] 也可以強制卸載 ...
可以參考這篇文章:http://www.cnblogs.com/chowmin/articles/4629220.html Solr 2004年誕生(當時是Solar). ElasticSearch ...
The working copy "初識tableVIew" failed to commit files. fatal: Unable to create '/Users/zjj ...
一.HTML5簡介 1.HTML5新特性 1)結構元素:section,header,hgroup,footer,nav,article,aside, 2)內容元素:figure,figcaption ...
大多數的Android應用程序都會使用HTTP協議來發送和接收網絡數據,而Android中主要提供了兩種方式來進行HTTP操作, HttpURLConnection和HttpClient.這兩種方式都 ...
今天在整理C#的異步編程的時候,看到一個Stopwatch類.讓我想起了,時候整理一下C#關於時間的類,望補充.斧正. DataTime類 表示時間上的一刻,即某個時間節點,通常以日期和當天的時間表示 ...
1) Debug版本算法反匯編,現有如下3×3矩陣相乘的程序: #define SIZE 3 int MyFunction(int a[SIZE][SIZE],int b[SIZE][SIZE],in ...
empty()在IE中沒反應的辦法: 用原生的js解決: try { $("#id" ).empty(); } catch (e) { $("#id")[0]. ...