国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

flask藍圖的簡單介紹

shadajin / 3176人閱讀

摘要:藍圖的簡單介紹藍圖概念的簡單介紹用藍圖的概念來在一個應用中或跨應用制作應用組件和支持通的模式。以前綴和或子域名,在應用上注冊一個藍圖。前綴子域名中的參數即成為這個藍圖下的所有視圖函數的共同的視圖參數默認情況下。

flask藍圖的簡單介紹

藍圖概念的簡單介紹:
Flask 用 藍圖(blueprints) 的概念來在一個應用中或跨應用制作應用組件和支持通的模式。藍圖很好地簡化了大型應用工作的方式,并提供給 Flask 擴展在應用上注冊操作的核心方法。一個 Blueprint 對象與 Flask 應用對象的工作方式很像,但它確實不是一個應用,而是一個描述如何構建或擴展應用的 藍圖 。

下面是我demo結構:

為什么要使用藍圖?

把一個應用分解為一個藍圖的集合。這對大型應用是理想的。一個項目可以實例化一個應用對象,初始化幾個擴展,并注冊一集合的藍圖。

以 URL 前綴和/或子域名,在應用上注冊一個藍圖。 URL 前綴/子域名中的參數即成為這個藍圖下的所有視圖函數的共同的視圖參數(默認情況下)。

在一個應用中用不同的 URL 規則多次注冊一個藍圖。

通過藍圖提供模板過濾器、靜態文件、模板和其它功能。一個藍圖不一定要實現應用或者視圖函數。

初始化一個 Flask 擴展時,在這些情況中注冊一個藍圖。 引用自官方文檔

在我看來,有了藍圖可以將一個應用注冊成很多模塊,方便管理,和添加擴展。

我的第一個藍圖

導入相應的模塊,Blueprint中的三個參數,第一個可以自己隨意命令,第二個一般都是__name__,
他指定了當前的flask應用,也就是當前我的app文件夾(也是一個包),第三個參數指定你存放,模板文
件的位置,這個主要看你你應用的目錄結構,我喜歡只存放一個templates目錄在app文件夾下,然后
使用相對路徑。

    from flask import Blueprint, render_template, abort, redirect, url_for
    from jinja2 import TemplateNotFound

    blog = Blueprint("blog", __name__, template_folder="../templates")
    @blog.route("/index")
    def index():
        try:
            return render_template("blog.html")
            except TemplateNotFound:
            abort(404)
    @blog.route("/welcome")
    def welcome():
            return "welcome to blog"
        

當時這樣你并不能訪問網頁,因為你還沒有注冊藍圖,藍圖不是即插即用的

注冊藍圖

在注冊前一定要導入相應的藍圖,如代碼中的admin和blog。

    from flask import Flask
    from view.addmin import admin
    from view.blog import blog
    app = Flask(__name__)
    app.register_blueprint(blog, url_prefix="/blog")
    app.register_blueprint(admin, url_prefix="/admin")

    if __name__ == "__main__":
        app.run(debug=True)
        # from werkzeug.serving import run_simple
        # run_simple("localhost", 5000, app)

訪問相應的頁面時,一定要將url_prefix中的前綴加上,比如要訪問blog.html中的內容,要寫成http://localhost/blog/index 的形式。

構造URL

要想從一個頁面跳轉到另一個頁面,通常是redirect和url_for配合使用,由于我們加入了藍圖,在訪問時
我們可以更加輕松

    url_for("blog.index")

具體代碼如下:

    from flask import Blueprint, render_template, abort, redirect, url_for
    from jinja2 import TemplateNotFoun

    blog = Blueprint("blog", __name__, template_folder="../templates")
    @blog.route("/index")
    def index():
        try:
            return redirect(url_for("blog.welcome"))
        except TemplateNotFound:
            abort(404)
    @blog.route("/welcome")
    def welcome():
        return "welcome to blog"
        

當你訪問/blog/index的頁面時,會自動幫你跳轉到/blog/welcome的頁面中。

以上大部分內容都借鑒自官方文檔,如果有不明白的地方,可以自行查閱。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/40918.html

相關文章

  • 第一本 gitbook: Flask Web 開發筆記

    摘要:月份發布了第版,收到不少網友的良好建議,所以又抽空進行了完善,當然也拖了不少時間。本書主要介紹的基本使用,這也是我一開始在學習過程中經常用到的。第章實戰,介紹了如何開發一個簡單的應用。聲明本書由編寫,采用協議發布。 showImg(https://segmentfault.com/img/remote/1460000007484050?w=200&h=152); 書籍地址 head-f...

    KevinYan 評論0 收藏0
  • Flask Api 文檔管理與 Swagger 上手

    摘要:眾數周知,文檔的編寫和整理工作將花費巨大精力甚至不亞于代碼的編寫,因此在時間緊任務重的情況下,文檔是首先被忽略的工作。是一款非常流行的文檔管理交互工具,適用于在團隊中的管理,以及服務組件對接。而我們目前需要的是獲取文檔或文件。 本文最先發布在博客:https://blog.ihypo.net/152551... Flask 是一個以自由度高、靈活性強著稱的 Python Web 框架...

    Scholer 評論0 收藏0
  • Flask Web Development —— 大型應用程序結構(上)

    摘要:被定義在包的構造函數中的應用程序工廠函數會在示例中展示。這個構造函數導入大部分當前需要使用的擴展,但因為沒有應用程序實例初始化它們,它可以被創建但不初始化通過不傳遞參數給它們的構造函數。而應用程序范圍內的錯誤處理則必須使用。 雖然小型web應用程序用單個腳本可以很方便,但這種方法卻不能很好地擴展。隨著應用變得復雜,在單個大的源文件中處理會變得問題重重。 與大多數其他web框架不同,Fl...

    chemzqm 評論0 收藏0
  • 關于flask藍圖

    摘要:注冊靜態路由和應用對象不同,藍圖對象創建時不會默認注冊靜態目錄的路由。 首選:flask藍圖是什么? flask運行web程序的運行是通過實例化對象app.run()來運行的,那么會出現在一個.py文件里面定義很多的視圖函數,即不方便代碼管理,又不利于后期的維護.所以在flask出現了藍圖(Blueprint),可以使程序模塊化,就像django的一個個模塊一樣來獨立編程。那么這個藍圖...

    Lsnsh 評論0 收藏0
  • python 最快 web 框架 Sanci 快速入門

    摘要:詳細信息可以看下這個問題先在說下我的部署方式使用部署配置文件啟動方式總結試用了下,把之前的一個聊天機器人從改成了。預告下一篇將介紹如何使用一步一步創建一個聊天機器人。 簡介 Sanic 是一個和類Flask 的基于Python3.5+的web框架,它編寫的代碼速度特別快。除了像Flask 以外,Sanic 還支持以異步請求的方式處理請求。這意味著你可以使用新的 async/await ...

    snifes 評論0 收藏0

發表評論

0條評論

shadajin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<