亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                Flask博客實戰(zhàn) – 實現(xiàn)博客首頁視圖及樣式

                Flask博客實戰(zhàn) - 實現(xiàn)博客首頁視圖及樣式

                本套教程是一個Flask實戰(zhàn)類教程,html/css/javascript等相關(guān)技術(shù)棧不會過多的去詳細解釋,那么就需要各位初學(xué)者盡可能的先去掌握這些基礎(chǔ)知識,當(dāng)然本套教程不需要你對其非常精通,但最起碼得做到能看懂其意思!

                靜態(tài)文件

                靜態(tài)文件是相對動態(tài)的web應(yīng)用而言的,一般是指css和js文件! 網(wǎng)站應(yīng)用部署的時候,這些靜態(tài)文件通常由Nginx等靜態(tài)文件服務(wù)器處理,但是在開發(fā)過程中, Flask 也能做好 這項工作。

                一般,F(xiàn)lask的靜態(tài)文件位于應(yīng)用的 /static 中,模板文件位于應(yīng)用的 /templates中。

                因此上,我們需要在app/blog/目錄下分別創(chuàng)建一個static及templates的文件夾,用來對應(yīng)的存放博客的靜態(tài)文件及模板文件!

                創(chuàng)建博客首頁視圖

                在app/blog/views.py中通過藍圖的方式創(chuàng)建首頁視圖,代碼如下:

                Flask 會自動為你配置 Jinja2 模板引擎。

                使用 render_template() 方法可以渲染模板,你只需要提供模板名稱和需要 作為參數(shù)傳遞給模板的變量就行了。

                from flask import Blueprint, render_templatebp = Blueprint(‘blog’, __name__, url_prefix=’/blog’, template_folder=’templates’, static_folder=’static’)def index(): “””首頁視圖 “”” posts = [1,2,3,4,5,6] return render_template(‘index.html’, posts=posts)

                在之前的藍圖應(yīng)用章節(jié)我們對藍圖的使用做了大概的說明,其中這里新增了幾個參數(shù)需要單獨拉出來說一下,Blueprint類的template_folder參數(shù)就是指定該藍圖需要獨立使用的模板文件夾,這個路徑是相對路徑或絕對路徑,static_folder參數(shù)即設(shè)置靜態(tài)文件目錄,這樣做的好處是我們就可以把每個功能模塊拆分,靜態(tài)文件和模板文件也可以獨立拆分,這個思路是有借鑒django項目的布局方式,利于維護和后期的動態(tài)擴展!

                index函數(shù)則就是一個python的普通函數(shù),只是在返回的時候我們使用了Flask提供的render_template方法來動態(tài)渲染模板和載入上下文數(shù)據(jù),啟動posts=posts就是我們構(gòu)造的一個上下文演示數(shù)據(jù),下來將會在模板文件中使用該上下文,這里需要注意的是我們并沒有使用裝飾器的方法去綁定url,下來我們要介紹一個url和視圖分離的url方式!

                add_url_rule方法分離視圖與url

                在項目目錄(RealProject)的__init__.py中的工廠函數(shù)create_app底部創(chuàng)建如下代碼

                def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) # 省略中間代碼 … return appdef register_bp(app:Flask): # 注冊視圖方法 from app.blog import views as blog # 注冊藍圖 app.register_blueprint(blog.bp) # 首頁url app.add_url_rule(rule=’/’, endpoint=’index’, view_func=blog.index)

                add_url_rule的參數(shù)解析:

                • rule參數(shù)是真正的url,url開頭必須以斜杠開始;
                • endpoint參數(shù)是該url的端點,類似于django的name參數(shù),它的作用是方便反查該url,一般的加載解析順序是訪問該url會先找該端點再找其關(guān)聯(lián)的視圖,然后開始處理邏輯,相當(dāng)于url的id;
                • view_func參數(shù)則是該url指向的函數(shù),綁定url與函數(shù)!

                之后只需要將register_bp函數(shù)引入工廠函數(shù)中即可,工廠函數(shù)代碼修改如下:

                def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) if test_config is None: CONFIG_PATH = BASE_DIR / ‘RealProject/settings.py’ app.config.from_pyfile(CONFIG_PATH, silent=True) else: # test_config為一個字典 app.config.from_mapping(test_config) db.init_app(app) migrate.init_app(app, db) # 注冊視圖 register_bp(app) # 注冊模型 from app.blog import models from app.auth import models return app

                創(chuàng)建博客首頁模板文件

                在app/blog/templates目錄下創(chuàng)建index.html,這就是render_template方法第一個參數(shù)對應(yīng)的模板文件,內(nèi)容如下:

                模板中用到的相關(guān)Jinja2模板語法,請自行查詢文檔理解

                • Jinja2 模板文檔 : https://jinja.palletsprojects.com/en/3.1.x/templates/

                {% block title %}{% endblock title %} {% block extra_head_style %}{% endblock extra_head_style %} {% block navbar %} Home Documentation About Contact Sign up Log in {% endblock navbar %} {% block hero %}

                Large hero

                Large subtitle

                {% endblock hero %} {% block main %} {% for post in posts %}

                Flask博客實戰(zhàn) – 掌握增刪改查

                既然我們選擇了使用ORM框架,那就必須熟練掌握其提供的增刪改查方法,在正式編寫視圖事前, 本節(jié)內(nèi)容我們先在shell環(huán)境中來了解和熟悉其增刪改查的基礎(chǔ)方法!

                11:09 PM – 1 Jan 2016 {% endfor %} Previous Next page

                • 1
                • 2
                • 3

                {% endblock main %} {% block footer %} 2022 FlaskBlog博客實戰(zhàn) 版權(quán)所有 備案號:陜ICP備20005686號 {% endblock footer %} {% block extra_foot_script %}{% endblock extra_foot_script %} {% block vue_script %}{% endblock vue_script %}

                靜態(tài)文件說明

                模板中我們看到加載靜態(tài)文件的方法使用了{{ url_for(‘blog.static’, filename=’css/style.css’) }}這樣的語法,這是固定寫法,第一個參數(shù)就是靜態(tài)文件的路徑,這里使用了藍圖來隔離了各應(yīng)用之間的靜態(tài)文件,那么blog.static即代表加載blog藍圖中的靜態(tài)文件夾,filename則是靜態(tài)文件的路徑字符串,加載圖片也是同樣的方法!

                本項目前端依賴的第三方框架有:

                • buefy — https://buefy.org/
                • bulma — https://bulma.io/
                • vue2 — https://cn.vuejs.org/

                請自行下載該三個框架的相關(guān)文件引入,這里就當(dāng)是給大家留的作業(yè),去試試吧!

                最終樣式

                其他章節(jié)

              1. Flask博客開發(fā)實戰(zhàn) – 前言
              2. Flask博客開發(fā)實戰(zhàn) – 配置環(huán)境并安裝Flask
              3. Flask博客實戰(zhàn) – 快速上手
              4. Flask博客實戰(zhàn) – 目錄結(jié)構(gòu)
              5. Flask博客實戰(zhàn) – 工廠函數(shù)
              6. Flask博客實戰(zhàn) – 藍圖應(yīng)用
              7. Flask博客實戰(zhàn) – Flask-SQLAlchemy的使用
              8. Flask博客實戰(zhàn) – 配置Flask-Migrate
              9. Flask博客實戰(zhàn) – 博客相關(guān)模型創(chuàng)建
              10. Flask博客實戰(zhàn) – 掌握Flask-SQLAlchemy的增刪改查
              11. 鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月17日 06:20
                下一篇 2022年6月17日 06:20

                相關(guān)推薦

                • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

                  對于微商朋友來說,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營一個朋友圈,有的微商看起來逼格滿滿,實際效果也不錯;而有的卻動都不動就被屏蔽甚至拉黑…

                  2022年11月27日
                • 存儲過程語法(sql server存儲過程語法)

                  今天小編給各位分享存儲過程語法的知識,其中也會對sql server存儲過程語法進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲過程基本語法…

                  2022年11月26日
                • 《寶可夢朱紫》夢特性怎么獲得?隱藏特性獲取方法推薦

                  寶可夢朱紫里有很多寶可夢都是擁有夢特性會變強的寶可夢,很多玩家不知道夢特性怎么獲得,下面就給大家?guī)韺毧蓧糁熳想[藏特性獲取方法推薦,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 …

                  2022年11月25日
                • 《寶可夢朱紫》奇魯莉安怎么進化?奇魯莉安進化方法分享

                  寶可夢朱紫中的奇魯莉安要怎么進化呢?很多玩家都不知道,下面就給大家?guī)韺毧蓧糁熳掀骠斃虬策M化方法分享,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 奇魯莉安進化方法分享 奇魯莉安…

                  2022年11月25日
                • 科比19歲女兒遭自稱與她生“科比式孩子”男子跟蹤騷擾

                  極目新聞記者王亮亮黃佳琪 據(jù)??怂剐侣劸W(wǎng)報道,當(dāng)?shù)貢r間11月21日,已故籃球巨星科比·布萊恩特的長女娜塔莉亞·布萊恩特21日向法院提交臨時限制令,聲稱這位32歲的前科從十幾歲起就騷…

                  2022年11月24日
                • 銳龍97900x參數(shù)規(guī)格跑分評測 銳龍97900x屬于什么檔次

                  銳龍9 7900X是銳龍7000系列處理器中性能頂尖的型號之一,它采用了這一代標(biāo)配的zen4架構(gòu)和5nm制程工藝,那么它具體的參數(shù)跑分如何,在電腦上世紀(jì)發(fā)揮怎么樣呢,下面就來看看銳…

                  2022年11月24日
                • 免費清理c盤的軟件(清理c盤空間不影響系統(tǒng))

                  電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤空間不足造成的。 即使電腦配置再好,或者硬盤再快,如果長時間沒有打掃C盤,打開文件或者穩(wěn)定之類的,都卡得讓人頭大。 這時候呢不要去…

                  2022年11月24日
                • pdf虛擬打印機(添加pdf虛擬打印機)

                  本文主要講的是pdf虛擬打印機,以及和添加pdf虛擬打印機相關(guān)的知識,如果覺得本文對您有所幫助,不要忘了將本文分享給朋友。 pdf虛擬打印機具體是什么功能? 電腦虛擬打印機的功能有…

                  2022年11月24日
                • 《寶可夢朱紫》暴飛龍怎么抓?暴飛龍獲得方法

                  寶可夢朱紫暴飛龍位置在哪?在游戲中,很多玩家還不清楚暴飛龍具體要怎么樣獲得,其實獲得方法很簡單,暴飛龍直接是沒得抓的,需要玩家從寶貝龍進化得到,下面一起來看一下寶可夢朱紫暴飛龍獲得…

                  2022年11月23日
                • 《寶可夢朱紫》布土撥怎么進化?布土撥進化方法介紹

                  寶可夢朱紫中,不同的寶可夢有不同的進化方法,其中布土撥的進化方法是比較特殊的。很多玩家不知道寶可夢朱紫布土撥怎么進化,下面就帶來寶可夢朱紫布土撥進化方法介紹,一起來看看吧,希望能幫…

                  2022年11月23日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時間:周一至周五,10:30-18:30,節(jié)假日休息