城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

Flask博客实战实现全站导航菜单及首页数据展示

3月27日 顾昀汐投稿
  Flask上下文处理器
  我们博客的设计是全站顶部菜单为通用菜单,调用的数据为文章的分类,那么如何将文章分类数据传递到每个页面的上下文呢?
  为了将新变量自动注入模板的上下文中,Flask中存在上下文处理器contextprocessor。上下文处理器在呈现模板之前运行,并且能够将新值注入模板上下文。上下文处理器是返回字典的函数。然后,对于应用程序中的所有模板,此字典的键和值将与模板上下文合并:
  用法如下所示,这只是一个例子:app。contextprocessordefinjectuser():returndict(userg。user)
  上面的上下文处理器是一个名为user的变量在模板中可用,其值为g。user。这个例子不是很有趣,因为g无论如何都可以在模板中使用,但它给出了它是如何工作的。
  变量不限于值;上下文处理器还可以使函数可用于模板(因为Python允许传递函数):app。contextprocessordefutilityprocessor():defformatprice(amount,currency):returnf{amount:。2f}{currency}returndict(formatpriceformatprice)
  上面的上下文处理器使formatprice函数可用于所有模板:{{formatprice(0。33)}}
  您还可以将formatprice构建为模板筛选器,但这演示了如何在上下文处理器中传递函数。实现全站导航功能
  知道了上下文处理器的用法,实现这个功能就非常简单了!
  在RealProject目录的init。py中插入如下一个上下文回调函数definjectcategory():上下文处理器回调函数contextprocessor上下文处理器在呈现模板之前运行,并且能够将新值注入模板上下文。上下文处理器是返回字典的函数。然后,对于应用程序中的所有模板,此字典的键和值将与模板上下文合并:fromapp。blog。modelsimportCategorycategorysCategory。query。limit(6)。all()returndict(categoryscategorys)
  这个函数通过limit()方法查询出前6个数据,并通过一个字典返回,之后我们还需要将该回调函数注册到app的工厂函数当中!defcreateapp(testconfigNone):appFlask(name,instancerelativeconfigTrue)省略部分代码全局上下文app。contextprocessor(injectcategory)returnapp
  在appblogtemplatesbase。html中循环查出我们返回的数据即可!导航{blocknavbar}templatebnavbarspacedshadowtemplatebrandbnavbaritemimgsrca2020imgdataimg。jpgdatasrcimg02。bs178。combf4hbcda1114040a9c34。jpgaltFlaskBlogbnavbaritemtemplatetemplatestartbnavbaritemhref{ifrequest。path}active{endif}首页bnavbaritem!查询菜单数据{forcateincategorys}bnavbaritemhref{{cate。name}}bnavbaritem{endfor}template!。。。省略部分代码bnavbartemplate{endblocknavbar}!导航end实现首页视图数据
  在appblogviews。py文件中的index首页视图函数中实现defindex():首页视图pagerequest。args。get(page,1,typeint)paginationPost。query。orderby(Post。adddate)。paginate(page,perpage9,erroroutFalse)postlistpagination。itemsimportrandomimgs〔图一url,图二url,图三url〕forpostinpostlist:post。imgrandom。sample(imgs,1)〔0〕post。imgrandom。choice(imgs)returnrendertemplate(index。html,postspostlist,paginationpagination)
  这个视图函数中的查询逻辑在实现文章管理的时候已经实现过,这里唯一不同的区别就是我给这个返回数据新增了一个img的属性,因为在数据库我们没有设计文章形象图字段,我们用这种方式弥补,在imgs的列表中预设一些图片的url地址,之后随机抽取一个赋值给img属性,这样在模板中直接调用这个img属性就会获取到图片的url!
  在appblogtemplatesbase。html中替换相关循环数据{forpostinposts}figureclassimageis4by5imgsrca2020imgdataimg。jpgdatasrcimg02。bs178。combf4h5a72bd41e83d04f1。jpgaltPlaceholderimagefigurepclasstitleis4{{post。title}}pclasshastextgreysubtitleissize6{{post。desc}}timeclasshastextgreydatetime{{post。adddate}}{{post。adddate}}time{endfor}最终效果:
投诉 评论 转载

华为nova10Pro上手图赏与千玺最搭的银色调轻奢有态度华为nova系列,从诞生之初就一直坚持美,先于一切的设计理念,多年的迭代,为nova星人带来了款款经典的设计,同时也引领业界美学潮流。配色上,华为nova系列同样形成了自身的潮……什么品牌的洗面奶好口碑最好的十大洗面奶排名无论你是什么肤质,洗面奶一定是必不可少的护肤产品,因为只有肌肤清洁干净了,后续的护肤品才能够被更充足的吸收,避免毛孔出现堵塞的情况。今天小编大家列出全球洗面奶排行榜,告诉您全球……试图颠覆JavaScript生态?亲身试用新JS运行时Bun终于有人站出来,打算跟JavaScript生态系统正面交锋了。这家伙知道自己在干什么,而且也描绘出了干掉JS之后要创造的美好新世界。2022年,前Stripe开发人员Ja……部落与弯刀隐藏的强力NPC不要错过,长相虽丑,但能力堪比T0众所周知,《部落与弯刀》这款游戏看名字就知道,部落才是最重要的,个人能力再强,也敌不过一个强大的部落,虽然是单机游戏,但是作为开放式沙盒游戏,《部落与弯刀》里面的部落属性显得尤……艾冬梅是天生的冠军,为了生活,1000元贱价卖金牌,到底为哪学习不行体育行,她是天生的冠军。1981年,艾冬梅出生在黑龙江齐齐哈尔的一个农村,父母是地道的农民,他们家境也很一般,所以艾冬梅就是他们一家的希望。我就要跑步,那学……灵山区前景是?QQ西游运营12年之久2021荣获金翎奖十大最受欢迎网游天命西游(原QQ西游),现在注册即可领取新手成长大礼包!快来畅游西游吧《西游记》是中国神魔小说的经典之作,达到了古代长篇浪漫主义小说的巅……斯宾塞发推期待战神新作后,一款页游风战神登陆了Xbox把我玩哭了。7月27日,Xbox总监菲尔斯宾塞公开在自己的社交帐号上表示,自己接下来最期待的游戏就是索尼圣莫尼卡工作室的《战神:诸神黄昏》。这也不是斯宾塞第一次表示……全国的游客一半在新疆,一半在云南!新疆云南为什么这么迷人?打卡挑战局进入暑期以来,随着疫情的持续好转,国内游迎来复苏,憋了大半年的人们报复性出游,远在西北的新疆和远在西南的云南成为国内游的首选之地,甚至有了一半的游客在新疆,一半的游客……Switch销量有望超越PS2?羸弱的性能撑起游戏主机的落日统计数据显示,截至今年6月,索尼于2013年发售的PlayStation4全球销量为1。1696亿台。任天堂Switch自2017年发售以来,全球销量已突破1。0980亿台,跟……金地暴雷的真相一个多月前,好猫写了《谣言能否击垮碧桂园》,那篇文章总结了谣言产生和传播逻辑,借用莎士比亚的话说:谣言是一支凭着推测、猜疑和臆度吹响的笛子。去年的融资危机,使得一批……Flask博客实战实现全站导航菜单及首页数据展示Flask上下文处理器我们博客的设计是全站顶部菜单为通用菜单,调用的数据为文章的分类,那么如何将文章分类数据传递到每个页面的上下文呢?为了将新变量自动注入模板的上下……人老了,如果老伴儿离开了,请逼自己做好这3件事前言:老年的生活比较幸福,也比较痛苦,幸福的是自己已经过了退休的年纪,可以好好的享受现在的生活方式,痛苦的是亲人离开之后,自己会陷入悲痛的局面,其实在这个世界上有很多事情……
金立手机创始人一赌输掉7亿美金,负债200亿跑路,至今去向成头大和智商有关系吗?盼望着的五一假期,想说爱你不容易向往的旅程箱遇美好奔赴热爱程序员的黄金时代已经过去,焦虑的大龄程序猿们我的脑洞,可能被正午阳光县委大院采纳了李雪健抗癌18年,全靠一个好妻子天天养生甲状腺结节快消散!两个茶饮方,好喝又解郁黑龙江6171和81岁老人,2022年养老金调整,养老金预计女人上了年纪别轻易扮嫩,学学日本大姐,穿衣得体气质很高雅又一新能源价格屠夫!哪吒S上市售19。98万起,CEO百万内绿军三巨头面对他命中率仅25!格林对不起,我们都错怪你了
高中学会思考议论文恐龙世界教学反思稳居第一!月影家居618张继科直播果然不同凡响关于债务纠纷,请问离婚法院怎么判热文聚热点网 我敬佩的人包饺子记作文450字天鹅与厨师寓言故事创业团队我们这群后的创业怪物下半身肥胖如何减肥5招让你变苗条MG动画配音是什么?和你理解的可能不一样哦女生最讨厌男生的九大穿搭正确闪避雷区iphone4如何开热点iphone4怎样开热点

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁