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

Flask博客实战 - 实现全站导航菜单及首页数据展示,第1张

我们博客的设计是全站顶部菜单为通用菜单,调用的数据为文章的分类,那么如何将文章分类数据传递到每个页面的上下文呢?

为了将新变量自动注入模板的上下文中,Flask 中存在上下文处理器context_processor。上下文处理器在呈现模板之前运行,并且能够将新值注入模板上下文。上下文处理器是返回字典的函数。然后,对于应用程序中的所有模板,此字典的键和值将与模板上下文合并:

用法如下所示,这只是一个例子:

上面的上尺余笑下文处理器是一个陵含名为 user 的变量在模板中可用,其值为 g.user。这个例子不是很有趣,因为g无论如何都可以在模板中使用,但它给出了它是如何工作的。

变量不限于值上下文处理器还可以使函数可用于模板(因为Python允许传递函数):

上面的上下文处理器使format_price函数可用于所有模板:

您还可以将format_price构建为模板筛选器,但这演示了如何在上下文处理器中传递函数。

知道了上下文处理器的用法,实现这个功能就非常简单了!

在RealProject目录的__init__.py中插入如下一个上下文回调函数

这个函数通过毁戚limit()方法查询出前6个数据,并通过一个字典返回,之后我们还需要将该回调函数注册到app的工厂函数当中!

在app/blog/templates/base.html中循环查出我们返回的数据即可

在app/blog/views.py文件中的index首页视图函数中实现

这个视图函数中的查询逻辑在实现文章管理的时候已经实现过,这里唯一不同的区别就是我给这个返回数据新增了一个img的属性,因为在数据库我们没有设计文章形象图字段,我们用这种方式弥补,在imgs的列表中预设一些图片的url地址,之后随机抽取一个赋值给img属性,这样在模板中直接调用这个img属性就会获取到图片的url!

在app/blog/templates/base.html中替换相关循环数据

asmazon.com为你解答:你好!如何在网站中插入博客粗旅程序?你可以先在网站导航上,填加博客链接,在将博客程序,上传到网站文件所在空间的子目录(新建一个)!然后按步岩做凳骤安装,这里推荐wordpress,安装完后,来做做自动更新,使用胡李社会化插件来实现!具体到wordpress官方看看使用说明!

"首页"选项不见了,你直接点上面的宽档灶"页面"选项,然后选择首页选项添加到"菜单结构".图示如下:

然后你就会发现首页既有分类目录又有蠢塌首页慎扮选项了!记得保存!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12255934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存