免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

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

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

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

      靜態(tài)文件

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

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

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

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

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

      Flask 會(huì)自動(dòng)為你配置 Jinja2 模板引擎。

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

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

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

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

      add_url_rule方法分離視圖與url

      在項(xiàng)目目錄(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): # 注冊(cè)視圖方法 from app.blog import views as blog # 注冊(cè)藍(lán)圖 app.register_blueprint(blog.bp) # 首頁(yè)url app.add_url_rule(rule=’/’, endpoint=’index’, view_func=blog.index)

      add_url_rule的參數(shù)解析:

      • rule參數(shù)是真正的url,url開頭必須以斜杠開始;
      • endpoint參數(shù)是該url的端點(diǎn),類似于django的name參數(shù),它的作用是方便反查該url,一般的加載解析順序是訪問(wèn)該url會(huì)先找該端點(diǎn)再找其關(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為一個(gè)字典 app.config.from_mapping(test_config) db.init_app(app) migrate.init_app(app, db) # 注冊(cè)視圖 register_bp(app) # 注冊(cè)模型 from app.blog import models from app.auth import models return app

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

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

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

      • 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博客實(shí)戰(zhàn) – 掌握增刪改查

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

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

      • 1
      • 2
      • 3

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

      靜態(tài)文件說(shuō)明

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

      本項(xiàng)目前端依賴的第三方框架有:

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

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

      最終樣式

      其他章節(jié)

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

      相關(guān)推薦

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

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

        2022年11月27日
      • 存儲(chǔ)過(guò)程語(yǔ)法(sql server存儲(chǔ)過(guò)程語(yǔ)法)

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

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

        寶可夢(mèng)朱紫里有很多寶可夢(mèng)都是擁有夢(mèng)特性會(huì)變強(qiáng)的寶可夢(mèng),很多玩家不知道夢(mèng)特性怎么獲得,下面就給大家?guī)?lái)寶可夢(mèng)朱紫隱藏特性獲取方法推薦,感興趣的小伙伴一起來(lái)看看吧,希望能幫助到大家。 …

        2022年11月25日
      • 《寶可夢(mèng)朱紫》奇魯莉安怎么進(jìn)化?奇魯莉安進(jìn)化方法分享

        寶可夢(mèng)朱紫中的奇魯莉安要怎么進(jìn)化呢?很多玩家都不知道,下面就給大家?guī)?lái)寶可夢(mèng)朱紫奇魯莉安進(jìn)化方法分享,感興趣的小伙伴一起來(lái)看看吧,希望能幫助到大家。 奇魯莉安進(jìn)化方法分享 奇魯莉安…

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

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

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

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

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

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

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

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

        2022年11月24日
      • 《寶可夢(mèng)朱紫》暴飛龍?jiān)趺醋??暴飛龍獲得方法

        寶可夢(mèng)朱紫暴飛龍位置在哪?在游戲中,很多玩家還不清楚暴飛龍具體要怎么樣獲得,其實(shí)獲得方法很簡(jiǎn)單,暴飛龍直接是沒(méi)得抓的,需要玩家從寶貝龍進(jìn)化得到,下面一起來(lái)看一下寶可夢(mèng)朱紫暴飛龍獲得…

        2022年11月23日
      • 《寶可夢(mèng)朱紫》布土撥怎么進(jìn)化?布土撥進(jìn)化方法介紹

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

        2022年11月23日

      聯(lián)系我們

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