在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Flask博客實(shí)戰(zhàn) – 實(shí)現(xiàn)全站導(dǎo)航菜單及首頁數(shù)據(jù)展示

    Flask博客實(shí)戰(zhàn) - 實(shí)現(xiàn)全站導(dǎo)航菜單及首頁數(shù)據(jù)展示

    Flask上下文處理器

    我們博客的設(shè)計(jì)是全站頂部菜單為通用菜單,調(diào)用的數(shù)據(jù)為文章的分類,那么如何將文章分類數(shù)據(jù)傳遞到每個(gè)頁面的上下文呢?

    為了將新變量自動(dòng)注入模板的上下文中,F(xiàn)lask 中存在上下文處理器context_processor。上下文處理器在呈現(xiàn)模板之前運(yùn)行,并且能夠?qū)⑿轮底⑷肽0迳舷挛?。上下文處理器是返?span id="46za1pt" class="wpcom_tag_link">字典函數(shù)。然后,對(duì)于應(yīng)用程序中的所有模板,此字典的鍵和值將與模板上下文合并:

    用法如下所示,這只是一個(gè)例子:

    @app.context_processordef inject_user(): return dict(user=g.user)

    上面的上下文處理器是一個(gè)名為 user 的變量在模板中可用,其值為 g.user。這個(gè)例子不是很有趣,因?yàn)間無論如何都可以在模板中使用,但它給出了它是如何工作的。

    變量不限于值;上下文處理器還可以使函數(shù)可用于模板(因?yàn)镻ython允許傳遞函數(shù)):

    @app.context_processordef utility_processor(): def format_price(amount, currency=” “): return f”{amount:.2f}{currency}” return dict(format_price=format_price)

    上面的上下文處理器使format_price函數(shù)可用于所有模板:

    {{ format_price(0.33) }}

    您還可以將format_price構(gòu)建為模板篩選器,但這演示了如何在上下文處理器中傳遞函數(shù)。

    實(shí)現(xiàn)全站導(dǎo)航功能

    知道了上下文處理器的用法,實(shí)現(xiàn)這個(gè)功能就非常簡(jiǎn)單了!

    在RealProject目錄的__init__.py中插入如下一個(gè)上下文回調(diào)函數(shù)

    def inject_category(): # 上下文處理器回調(diào)函數(shù) “”” context_processor上下文處理器在呈現(xiàn)模板之前運(yùn)行,并且能夠?qū)⑿轮底⑷肽0迳舷挛?。上下文處理器是返回字典的函?shù)。 然后,對(duì)于應(yīng)用程序中的所有模板,此字典的鍵和值將與模板上下文合并: “”” from app.blog.models import Category categorys = Category.query.limit(6).all() return dict(categorys=categorys)

    這個(gè)函數(shù)通過limit()方法查詢出前6個(gè)數(shù)據(jù),并通過一個(gè)字典返回,之后我們還需要將該回調(diào)函數(shù)注冊(cè)到app的工廠函數(shù)當(dāng)中!

    def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) # 省略部分代碼 # 全局上下文 app.context_processor(inject_category) return app

    在app/blog/templates/base.html中循環(huán)查出我們返回的數(shù)據(jù)即可

    {% block navbar %} 首頁 {% for cate in categorys %} {{ cate.name }} {% endfor %} {% endblock navbar %}

    實(shí)現(xiàn)首頁視圖數(shù)據(jù)

    在app/blog/views.py文件中的index首頁視圖函數(shù)中實(shí)現(xiàn)

    def index(): “””首頁視圖 “”” page = request.args.get(‘page’, 1, type=int) pagination = Post.query.order_by(-Post.add_date).paginate(page, per_page=9, error_out=False) post_list = pagination.items import random imgs = [‘圖一url’, ‘圖二url’, ‘圖三url’] for post in post_list: post.img = random.sample(imgs, 1)[0] # post.img = random.choice(imgs) return render_template(‘index.html’, posts=post_list, pagination=pagination)

    這個(gè)視圖函數(shù)中的查詢邏輯在實(shí)現(xiàn)文章管理的時(shí)候已經(jīng)實(shí)現(xiàn)過,這里唯一不同的區(qū)別就是我給這個(gè)返回?cái)?shù)據(jù)新增了一個(gè)img的屬性,因?yàn)樵跀?shù)據(jù)庫我們沒有設(shè)計(jì)文章形象圖字段,我們用這種方式彌補(bǔ),在imgs的列表中預(yù)設(shè)一些圖片的url地址,之后隨機(jī)抽取一個(gè)賦值給img屬性,這樣在模板中直接調(diào)用這個(gè)img屬性就會(huì)獲取到圖片的url!

    在app/blog/templates/base.html中替換相關(guān)循環(huán)數(shù)據(jù)

    {% for post in posts %}

    {{ post.title }}

    {{ post.desc }}

    {{ post.add_date }} {% endfor %}

    最終效果:

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年7月4日 09:21
    下一篇 2022年7月4日 09:21

    相關(guān)推薦

    • dnf一鍵拾取(dnf一鍵拾取是全圖的嗎)

      今天小編給各位分享dnf一鍵拾取的知識(shí),其中也會(huì)對(duì)dnf一鍵拾取是全圖的嗎進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! dnf如何一鍵拾取物品 dnf一鍵…

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

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

      2022年11月26日
    • 《寶可夢(mèng)朱紫》獒教父屬性是什么?獒教父屬性一覽

      寶可夢(mèng)朱紫里獒教父是一只很強(qiáng)的寶可夢(mèng),很多玩家不清楚獒教父的屬性是什么樣的,下面就給大家?guī)韺毧蓧?mèng)朱紫獒教父屬性一覽,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 獒教父屬性一覽…

      2022年11月25日
    • 《寶可夢(mèng)朱紫》太晶化強(qiáng)力寶可夢(mèng)推薦 太晶化哪些寶可夢(mèng)最強(qiáng)?

      寶可夢(mèng)朱紫游戲中寶可夢(mèng)種類繁多,不過有的寶可夢(mèng)比較強(qiáng),有的稍弱一些,那么太晶化化哪些寶可夢(mèng)最強(qiáng)呢,為了便于大家更好的體驗(yàn)游戲,這里給大家?guī)砹藢毧蓧?mèng)朱紫太晶化強(qiáng)力寶可夢(mèng)推薦,一起來…

      2022年11月25日
    • 寶可夢(mèng)朱紫四大天王屬性怎么樣 四大天王屬性數(shù)值介紹

      寶可夢(mèng)朱紫四大天王屬性如何?四大天王的屬性數(shù)值玩家們還是挺好奇的,想要了解四大天王屬性的可以看看下面小編的介紹,小編會(huì)把四大天王的屬性數(shù)值全都分享在下面,各位趕緊來小編這里多了解一…

      2022年11月25日
    • 寶可夢(mèng)朱紫皮卡丘多少級(jí)進(jìn)化 皮卡丘進(jìn)化條件攻略

      寶可夢(mèng)朱紫皮卡丘進(jìn)化條件是什么?皮卡丘怎么進(jìn)化?作為最受歡迎的電屬性寶可夢(mèng),大家都很想知道皮卡丘進(jìn)化的方法,今天小編這就在下面的攻略中分享皮卡丘進(jìn)化條件,各位可以趕緊來小編這里了解…

      2022年11月25日
    • 什么是推廣cpa一篇文章帶你看懂CPA推廣渠道

      CPA渠道 CPA指的是按照指定的行為結(jié)算,可以是搜索,可以是注冊(cè),可以是激活,可以是搜索下載激活,可以是綁卡,實(shí)名認(rèn)證,可以是付費(fèi),可以是瀏覽等等。甲乙雙方可以根據(jù)自己的情況來定…

      2022年11月25日
    • 抖音直播帶貨有哪些方法技巧(抖音直播帶貨有哪些痛點(diǎn))

      如今抖音這個(gè)短視頻的變現(xiàn)能力越來越突顯了,尤其是在平臺(tái)上開通直播,更具有超強(qiáng)的帶貨屬性,已經(jīng)有越來越多的普通人加入到其中了。不過直播帶貨雖然很火,但是也不是每個(gè)人都能做好的,那么在…

      2022年11月24日
    • 《寶可夢(mèng)朱紫》一般道館怎么打?一般道館攻略方法

      寶可夢(mèng)朱紫中玩家可以挑戰(zhàn)各種道館,游戲中一共有8個(gè)道館需要挑戰(zhàn)。很多玩家想知道寶可夢(mèng)朱紫一般道館怎么打,下面就帶來寶可夢(mèng)朱紫一般道館攻略方法,感興趣的小伙伴不要錯(cuò)過,希望能幫助到大…

      2022年11月24日
    • 《寶可夢(mèng)朱紫》四天王屬性是什么?四天王屬性陣容一覽

      寶可夢(mèng)朱紫中玩家可以挑戰(zhàn)四天王,很多玩家想知道寶可夢(mèng)朱紫四天王屬性是什么,有什么陣容?下面就帶來寶可夢(mèng)朱紫四天王屬性陣容一覽,感興趣的小伙伴不要錯(cuò)過,希望能幫助到大家。 四天王屬性…

      2022年11月24日

    聯(lián)系我們

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