日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flask框架(flask中的蓝图Blueprint)

發(fā)布時間:2024/9/30 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask框架(flask中的蓝图Blueprint) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 我們學習Flask框架,開始的時候是把所有的視圖函數(shù)等都寫在一個文件中

? ?我們在這單個文件中可以定義路由、視圖函數(shù)、定義模型等等。

? ?但這顯然存在一個問題:隨著業(yè)務代碼的增加,將所有代碼都放在單個程序文件中,是非常不合適的。

? ? ?這不僅會讓代碼閱讀變得困難,而且會給后期維護帶來麻煩。

2. 問題怎么解決呢

? ? ? ?一個程序執(zhí)行文件中,功能代碼過多。? 讓代碼實現(xiàn)模塊化

? ? ? ?嘗試用模塊的導入的方式解決

? ? ? ?把一個文件拆開,把視圖函數(shù)按照不同的功能進行劃分,分成不同的文件,然后建立一個主文件,在主文件中。利用模塊導入的方法,

??這是我的文件目錄?

? 可以在其他文件里面把視圖函數(shù)放出去,然后利用裝飾器傳入?yún)?shù)的方式進行在主文件中把其他視圖的路由進行綁定

from flask import Flask from Blueprint_le.goods import get_goods from Blueprint_le.users import register # 循環(huán)引用,解決的方法,推遲一方的導入,讓一方先完成 # 使用裝飾器的函數(shù)使用方法,解決模塊分割的問題 app = Flask(__name__) app.route("/get_goods")(get_goods) app.route("/register")(register)@app.route("/") def index():return "index page"if __name__ == '__main__':print(app.url_map)app.run()

3.?什么是藍圖?

? ?藍圖:用于實現(xiàn)單個應用的視圖、模板、靜態(tài)文件的集合。

? ?藍圖就是模塊化處理的類。

? 簡單來說,藍圖就是一個存儲操作路由映射方法的容器,主要用來實現(xiàn)客戶端請求和URL相互關聯(lián)的功能。

? 在Flask中,使用藍圖可以幫助我們實現(xiàn)模塊化應用的功能。

4.藍圖的運行機制:

? ?藍圖是保存了一組將來可以在應用對象上執(zhí)行的操作。

? ?注冊路由就是一種操作,當在程序實例上調用route裝飾器注冊路由時,這個操作將修改對象的url_map路由映射列表。

? ?當我們在藍圖對象上調用route裝飾器注冊路由時,它只是在內部的一個延遲操作記錄列表defered_functions中添加了一? ? ? ?個項。當執(zhí)行應用對象的 register_blueprint() 方法時,應用對象從藍圖對象的 defered_functions 列表中取出每一項,即? ? ? 調用應用對象的 add_url_rule() 方法,這將會修改程序實例的路由映射列表。

5.藍圖的使用

? ?(1)創(chuàng)建藍圖對象

'''Blueprint必須指定兩個參數(shù),admin表示藍圖的名稱,__name__表示藍圖所在模塊''' admin = Blueprint('admin',__name__)

? ?(2)? 注冊藍圖的路由

@admin.route('/') def admin_index():return 'admin_index'

? (3) 在程序中注冊該藍圖

app.register_blueprint(admin,url_prefix='/admin')

6.藍圖的使用例子

? ? ?以目錄的形式定義藍圖以及藍圖里面模板目錄的處理

1. 首先我的目錄結構和我的程序和模板存放的目錄為:

? ?

? 2. 使用目錄分割,在cart目錄里面的_ _ init _ _.py里面創(chuàng)建藍圖,并且要把視圖加載進來

from flask import Blueprint'''創(chuàng)建藍圖 修改模板路徑為當前templates的路徑,還有一個設置靜態(tài)的目錄static_folder''' app_cart = Blueprint("app_cart", __name__, template_folder="templates")'''在__init__.py執(zhí)行的時候,把視圖加載進來,讓藍圖與應用程序知道有視圖的存在''' # Blueprint_le.cart.views : 從路徑里面的views.py導入get_cart視圖函數(shù) from Blueprint_le.cart.views import get_cart

3. 在views.py里面使用藍圖,定義視圖函數(shù),

? ?定義模板 cart.html存放在cart里面的templates下

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><h1>cart page</h1> </body> </html>

? ? views.py?

from flask import render_template from Blueprint_le.cart import app_cart@app_cart.route("/get_cart") def get_cart():return render_template("cart.html")

4.不使用目錄的分割形式也可以,例如建立order.py,建立藍圖

from flask import Blueprint'''創(chuàng)建一個藍圖的對象,藍圖就是一個小模塊的抽象的模塊'''app_orders = Blueprint("app_orders", __name__)@app_orders.route("/get_orders") def get_orders():return "get orders page"

5.然后建立一個main.py在里面實現(xiàn)主要的代碼:

from flask import Flask from Blueprint_le.orders import app_orders from Blueprint_le.cart import app_cartapp = Flask(__name__)'''注冊藍圖 , url_prefix:給訪問的路徑加一個前綴''' app.register_blueprint(app_orders, url_prefix="/orders") app.register_blueprint(app_cart, url_prefix="/cart")@app.route("/") def index():return "index page"if __name__ == '__main__':# 打印出所有的路由print(app.url_map)app.run(debug=True)

6.? 首先可以訪問 沒有使用目錄分割的orders,? ? 運行程序,瀏覽器訪問? ?127.0.0.1:5000/orders/get_orders

? ??

?然后可以訪問使用目錄分割的cart,瀏覽器訪問?127.0.0.1:5000/cart/get_cart

??

7.? 如果藍圖里面的小目錄里面沒有找到模板,則會去頂級的templates的目錄里面去找

? ? 如果在藍圖的小目錄的templates的模板和總的templates的模板重名的話,則會使用總的templates里的模板

??

?

總結

以上是生活随笔為你收集整理的Flask框架(flask中的蓝图Blueprint)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品国产a级 | 日韩特一级 | 无码人妻精品一区二区三区不卡 | 亚洲精品国产精品乱码视色 | 人妻熟女一区二区aⅴ水野 91在线观看视频 | 免费a级| 成人免费影片 | 毛片在哪看 | 午夜动态图 | 在线精品福利 | 久久婷婷综合国产 | 国产成人一级片 | 啪视频在线 | √资源天堂中文在线 | 精品人妻一区二区三区四区久久 | 红桃视频一区二区三区免费 | 国产91绿帽单男绿奴 | 高潮videossex高潮 | 青青草原亚洲 | 麻豆日韩| 日日摸夜夜添狠狠添久久精品成人 | 国产成人福利 | 欧美有码在线 | 欧洲精品久久 | 日本视频www色 | 色亚洲视频 | 精品国产乱码久久久久久浪潮 | 亚洲成人欧美 | 婷婷伊人 | www天堂在线| 欧洲视频一区二区三区 | wwwav视频在线观看 | 欧美最猛黑人xxxx | 人妻少妇被粗大爽9797pw | 人妻丝袜一区 | 99久久婷婷 | 久久久久久av无码免费网站下载 | 欧美疯狂做受xxxxx高潮 | 亚洲女同一区二区 | 国产视频精品一区二区三区 | 亚洲av毛片基地 | 四虎网址在线 | 欧美另类日韩 | 欧美又大粗又爽又黄大片视频 | 香蕉久草| 亚洲视频一二三 | 色狠狠一区二区三区香蕉 | 清清草免费视频 | 国产欧美精品在线观看 | 色干综合| 免费萌白酱国产一区二区三区 | 国产精品白浆一区二小说 | 激情一区二区三区 | 亚洲视频播放 | 污导航在线 | 摸摸大奶子 | 92国产精品 | 亚洲一区二区三区久久久成人动漫 | 精品久久久无码中文字幕 | 麻豆成人免费 | 亚洲男女在线观看 | 亚洲一区二区国产 | 欧美视频一区在线观看 | 日本作爱视频 | 日本黄色网页 | 久久久在线观看 | 久久视频一区二区三区 | 成人在线一区二区 | 日批免费在线观看 | 国产精品羞羞答答在线 | 处破痛哭a√18成年片免费 | 日韩在线观看免费高清 | 亚洲美女福利 | 美人被强行糟蹋np各种play | 男女视频在线免费观看 | 久久久久五月 | 人人干在线 | 国产精品无码内射 | 激情午夜网 | 臭脚猛1s民工调教奴粗口视频 | 超碰在线人 | 日本一区免费视频 | 午夜精品久久久久久久四虎美女版 | 超碰免费在线播放 | 日韩精品成人一区二区在线 | aaa黄色| 日本一区免费电影 | 亚洲AV午夜精品 | 一区二区成人免费视频 | 日韩欧美国产成人精品免费 | 免费av免费看 | 日韩av毛片在线观看 | 国产精品伦一区二区三区免费看 | 美女无遮挡网站 | 欧美视频直播网站 | 少妇丰满尤物大尺度写真 | 手机在线中文字幕 | www,av在线| 日本www高清视频 |