欢迎光临外链推广平台,一个优秀的外链推广平台,为你解决获客难题!

给个人博客添加后台管理友链与全站公告功能

作者:jcmp      发布时间:2021-04-30      浏览量:0
给个人博客网站添加了友情链接与全站公告通

给个人博客网站添加了友情链接与全站公告通知功能,写篇文章记录一下。

首先考虑了使用Django的模板标签,也是为了练练手,相关知识可以去查看Django官方文档。下面是具体实现。

一、友情链接功能

二、模型

其实友情链接直接在首页页面html里面写就可以(到现在我还没有友链呢~),但是我想通过后台来管理这个数据,索性专门建了个名为 extras 的 app 。

TimeStampedModel 是一个提供 自更新 的创建与修改字段的抽象基类。这里的 gettext_lazy 是用来做国际化的,对我的小破站其实没什么用,之所以有这个是因为这段是我从 追梦人物 的开源代码上复制来的,懒得改了。

写完代码可别忘了模型 迁移 。

三、模板标签

这里使用的是 包含标签 ,首先要在app目录下创建 templatetags 目录,并在其中创建 __init__.py 文件使之成为一个包。接着创建 sidebar_tags.py ,在其中编写我们的Python代码。

默认显示5条数据,Django模板标签可以 接收参数 ,像 {% show_friend_links 5 %} 这样使用。

注意这里使用的是包含标签, @register.inclusion_tag('inclusions/_friend_link.html', takes_context=True) 在装饰器里写上了需要包含的模板路径。包含标签通过渲染这个包含的模板去显示数据。

所以要在放置模板的 templates 文件夹中新建相应的文件:

用了 bootstrap 的 card 样式,还是比较好看的。

接下来在需要使用的地方用 {% load sidebar_tags %} 载入标签,在需要添加的地方使用 {% show_friend_links %} 就可以了。

四、全站公告功能

同样,这个也放到扩展功能app里面去。

五、模型

同样使用 TimeStampedModel 省得写创建时间,程序员就是要偷懒,啦啦啦~

同样地在写完后要 迁移 。

六、标签

通过 SiteMessage.objects.last() 每次只取最新的数据。使用方法同上。

七、效果图

八、关于网页结构

为了让页面显示协调一点,我花了不少时间,前端真的是博大精深(太难了)。