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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Flask 系列之 Blueprint

發布時間:2024/9/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask 系列之 Blueprint 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明

  • 操作系統:Windows 10
  • Python 版本:3.7x
  • 虛擬環境管理器:virtualenv
  • 代碼編輯器:VS Code

實驗目標

學習如何使用 Blueprint

介紹

接觸過 DotNet MVC 開發的朋友應該都對 路由 的概念有一定的了解。所謂 路由 就是指我們訪問一個網站時,這個網站各個頁面訪問時對應的 URL 地址。在我們的網站不是很復雜時,我們可以使用最原始的方法來設計路由,但是對待一個大型項目如果我們的路由不能進行統一管理和配置的話,那么對于項目后期來說,是無法維護的。

對于 Flask 來說,當我們的項目達到一定級別的話,可以嘗試將我們的項目進行模塊化設計,那么對應的路由我們也應該通過某種方式來進行統一管理和配置,這個時候就可以使用 Blueprint 來解決。

Blueprint 中文叫 藍圖,其作用是用于路由的模塊化配置與管理。其常用參數如下圖所示:

其中常用的幾個參數為:

  • name: 藍圖名稱;
  • import_name:導入的名稱,使用 name 即可;
  • url_prefix:藍圖的訪問前綴;

使用

打開 Windows Cmd,執行下述操作:

mkdir flask_bppython -m viratulenv venvvenv\Scripts\activatepip install flaskcode .

執行完畢后,VS Code 會自動加載該目錄并啟動起來,我們嘗試創建一個最簡單的示例程序看一下效果,組織一下我們的項目代碼,如下圖所示:

我們創建了一個項目名為 app 的模塊,這個模塊作為我們的項目根目錄,然后在里面創建了一個 home 子模塊,這個模塊我們作為我們網站的一個子站點,然后會被注冊到主程序中。

定義

app\home ?init.py 的示例代碼如下所示:

from flask import Blueprintbp = Blueprint('home', __name__)from . import views

使用

app\home\views.py 的示例代碼如下所示:

from flask import render_template from . import bp@bp.route('/index') @bp.route('/') def index():msg = '我是來至模塊 home 的視圖函數'return render_template('home/index.html', msg=msg)

添加頁面

app\templates\base.html 的示例代碼如下所示:

<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Flask-bp</title> </head><body>{% block content %}{% endblock %} </body></html>

app\templates\home\index.html 的示例代碼如下所示:

{% extends 'base.html' %} {% block content %} <center><h1>{{msg}}</h1> </center> {% endblock %}

注冊

**app__init__.py** 的示例代碼如下所示:

from flask import Flask from .home import bp as home_bpapp = Flask(__name__)app.register_blueprint(home_bp, url__prefix='/')

添加啟動函數

manage.py 的示例代碼如下所示:

from app import appif __name__ == "__main__":app.run(debug=True)

修改完畢后,嘗試在當前虛擬環境中執行 flask run 來運行我們的程序,會出現如下圖所示的界面:

需要補充的一點是,如果我們在 HTML 中訪問某個模塊的視圖函數,可以通過 modulename.routename 方式,在上述的示例中,如果我們想訪問到 home 模塊中 的 “Index” 路由,那么可以通過 home.index 方式即可。

總結

Blueprint 支持多種配置方式,包括當前模塊的路由規則,靜態資源的訪問位置。需要說明的一點時,由于我們引入了模塊化的編程方式,所有可能存在模塊與模塊之間循環引入的問題,如果出現這種情況的話,我們的某些自定義模塊就無法成功導入,這個時候我們可以嘗試在某一函數段進行局部導入,這樣就可以了。

相關參考

  • 用藍圖實現模塊化的應用

轉載于:https://www.cnblogs.com/hippieZhou/p/10664408.html

總結

以上是生活随笔為你收集整理的Flask 系列之 Blueprint的全部內容,希望文章能夠幫你解決所遇到的問題。

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