成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

flask藍(lán)圖的簡單介紹

shadajin / 3233人閱讀

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

flask藍(lán)圖的簡單介紹

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

下面是我demo結(jié)構(gòu):

為什么要使用藍(lán)圖?

把一個(gè)應(yīng)用分解為一個(gè)藍(lán)圖的集合。這對大型應(yīng)用是理想的。一個(gè)項(xiàng)目可以實(shí)例化一個(gè)應(yīng)用對象,初始化幾個(gè)擴(kuò)展,并注冊一集合的藍(lán)圖。

以 URL 前綴和/或子域名,在應(yīng)用上注冊一個(gè)藍(lán)圖。 URL 前綴/子域名中的參數(shù)即成為這個(gè)藍(lán)圖下的所有視圖函數(shù)的共同的視圖參數(shù)(默認(rèn)情況下)。

在一個(gè)應(yīng)用中用不同的 URL 規(guī)則多次注冊一個(gè)藍(lán)圖。

通過藍(lán)圖提供模板過濾器、靜態(tài)文件、模板和其它功能。一個(gè)藍(lán)圖不一定要實(shí)現(xiàn)應(yīng)用或者視圖函數(shù)。

初始化一個(gè) Flask 擴(kuò)展時(shí),在這些情況中注冊一個(gè)藍(lán)圖。 引用自官方文檔

在我看來,有了藍(lán)圖可以將一個(gè)應(yīng)用注冊成很多模塊,方便管理,和添加擴(kuò)展。

我的第一個(gè)藍(lán)圖

導(dǎo)入相應(yīng)的模塊,Blueprint中的三個(gè)參數(shù),第一個(gè)可以自己隨意命令,第二個(gè)一般都是__name__,
他指定了當(dāng)前的flask應(yīng)用,也就是當(dāng)前我的app文件夾(也是一個(gè)包),第三個(gè)參數(shù)指定你存放,模板文
件的位置,這個(gè)主要看你你應(yīng)用的目錄結(jié)構(gòu),我喜歡只存放一個(gè)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"
        

當(dāng)時(shí)這樣你并不能訪問網(wǎng)頁,因?yàn)槟氵€沒有注冊藍(lán)圖,藍(lán)圖不是即插即用的

注冊藍(lán)圖

在注冊前一定要導(dǎo)入相應(yīng)的藍(lán)圖,如代碼中的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)

訪問相應(yīng)的頁面時(shí),一定要將url_prefix中的前綴加上,比如要訪問blog.html中的內(nèi)容,要寫成http://localhost/blog/index 的形式。

構(gòu)造URL

要想從一個(gè)頁面跳轉(zhuǎn)到另一個(gè)頁面,通常是redirect和url_for配合使用,由于我們加入了藍(lán)圖,在訪問時(shí)
我們可以更加輕松

    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"
        

當(dāng)你訪問/blog/index的頁面時(shí),會(huì)自動(dòng)幫你跳轉(zhuǎn)到/blog/welcome的頁面中。

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/40918.html

相關(guān)文章

  • 第一本 gitbook: Flask Web 開發(fā)筆記

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

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

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

    Scholer 評論0 收藏0
  • Flask Web Development —— 大型應(yīng)用程序結(jié)構(gòu)(上)

    摘要:被定義在包的構(gòu)造函數(shù)中的應(yīng)用程序工廠函數(shù)會(huì)在示例中展示。這個(gè)構(gòu)造函數(shù)導(dǎo)入大部分當(dāng)前需要使用的擴(kuò)展,但因?yàn)闆]有應(yīng)用程序?qū)嵗跏蓟鼈儯梢员粍?chuàng)建但不初始化通過不傳遞參數(shù)給它們的構(gòu)造函數(shù)。而應(yīng)用程序范圍內(nèi)的錯(cuò)誤處理則必須使用。 雖然小型web應(yīng)用程序用單個(gè)腳本可以很方便,但這種方法卻不能很好地?cái)U(kuò)展。隨著應(yīng)用變得復(fù)雜,在單個(gè)大的源文件中處理會(huì)變得問題重重。 與大多數(shù)其他web框架不同,F(xiàn)l...

    chemzqm 評論0 收藏0
  • 關(guān)于flask藍(lán)圖

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

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

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

    snifes 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<