django项目实例精解(4)扩展博客应用程序

本文介绍了如何在Django项目中创建自定义模板标签和过滤器,实现博客的样式调整;向站点添加网站地图,利用Django内置框架动态生成;以及创建帖子提要,支持RSS或Atom订阅。详细步骤包括设置、代码编写及效果展示。
摘要由CSDN通过智能技术生成

第三章内容:

  1. 创建自定义模板标签和过滤器,
  2. 添加网站地图和帖子提要,
  3. 利用PostgreSQL实现全文本搜索。
    我自己补充点内容:
    之前博客一直没有样式,侧边栏也没正确显示,我自己搜了下,来完成这个。当然依旧不会很好看。在项目settings.py 中加入:
STATICFILES_DIRS = [(os.path.join(BASE_DIR, 'static'))]

然后新建static文件夹,下面建css文件夹新建文件blog.css,写入:

#content{float: left;width:800px;height: 150px;}
#sidebar{border-left: 1px solid #e1e1e1;float: right;width: 384px;}

3.1 创建自定义模板标签和过滤器

创建templatetags文件,添加__init__.py,再建blog_tags.py,填写代码:

from django import template
from ..models import Post

register = template.Library()

@register.simple_tag  # 注册为简单的标签
def total_posts():
    return Post.published.count()
    

在blog/templates/base.html中添加:
一个在上面,一个在下面,自己调整位置。

{
   % load blog_tags %}
<p>This is my blog.I've written {
   % total_posts %} posts so far.</p>

可以运行项目查看一下,
在blog_tags.py写下列代码:

@register.inclusion_tag('blog/post/latest_posts.html')
def show_latest_posts(count=5):
    latest_posts = Post.published.order_by('-publish')[:count]
    return {
   'latest_posts': latest_posts} 

然后再blog/post/latest_posts.html写代码:

<ul>
    {
   % for post in latest_posts %}
    <li>
        <a href="{
   { post.get_absolute_url }}">{
   {
   
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值