分享

(转)Python 网站开发(四)Django 模板小结-东奎博客

 豆芽爱尚阅 2015-03-31

Python 网站开发(四)Django 模板小结

分类:Python, Django
百度分享 0

接着上一篇 Python 网站开发(三)Django 模板的使用,本篇对 Django 模板做进一步的学习。我们会对 Django 模板中常用的技术进行一下小结,好为将来 Python 网站的实际开发做好准备。

1.Django 模板块标签(blog tag)

如我们在 Python 网站开发(三)Django 模板的使用中使用的 for 标签,它就是一个块标签,语法和 Python 中一致,只不过在 Django 模板中是包含在 {% %}中,如下:

{% for m in model %}
    <article>
        <h2>{{ m.title }}</h2>
        <p>{{ m.addtime }}</p>
        <p>{{ m.content }}</p>
    </article>
{% endfor %}

类似的模板标签还有几个,以后我们可能会使用到。

2.Django 模板的继承

如在上一篇文章中,我们新建了"base.html"公用模板,使用下边的语句即可完成模板的继承:

{% extends "base.html" %} 

3.Django 模板过滤器

我们可以使用 Django 模板过滤器来格式化的显示数据,Django 模板过滤器大家可以参考 Django 模板过滤器列表。只需使用一个竖杠("|"),如使用 date 可将时间格式转换为"yyyy-MM-dd"的形式:

<span>{{ m.addtime|date:"Y-m-d" }}</span> 

Django 模板日期格式大家可以参考 Django 模板日期格式表。使用 truncatewords 可截取指定个数的单词,如下边的代码截取显示前三个单词,我们第一篇文章标题会显示为 "First python blog ...".

{{ m.title|truncatewords:"3" }}

使用时一定要注意空格,如在 "|" 左右加上空格的话就会报错。

4.Django 数据排序

虽然,排序本身不属于模板的任务,但它也是数据的表现形式,所以我们总结到这里。我们可以在视图(views.py)读取数据时指定排序方式,如下:

    # 按id升序排列
    articles=article.objects.all().order_by("id")
    # 按id降序排列
    articles=article.objects.all().order_by("-id")

当然,好的做法是在 model (models.py) 中修改,方法是定义一个 Meta 嵌套类,然后指定 ordering 属性,如下:

class article(models.Model):
    title=models.CharField(max_length=50)
    content=models.CharField(max_length=4000)
    addtime=models.DateTimeField()
    class Meta:
        ordering=('-id',)

('-id',)是一个无组,请注意逗号,我们在 urls.py 中已经使用过。在 models.py 中设置后,如果再在视图设置的话,会以视图中的为准。这里再次提醒下缩进,Python 中控制代码逻辑就是靠缩进来控制的。如果缩进不正确,就会出现错误。

5.Django 模板中文乱码解决

可以看到,Django 模板本身为 ".html" 文件,所以出现乱码是由于文件保存格式问题。如我新建模板时喜欢用记事本,新建的文件默认为 ".ANSI" 格式从而导致 Django 模板的中文会出现乱码。解决时只需用记事本打开文件并将它保存为"UTF-8"的即可。

6.Python 文件中文乱码解决

如在 Python 文件(.py)中使用中文注释等时就会出现错误,解决方法是在 .py 文件的开头加入下边的代码:

#coding=utf-8  

使用 Django 模板可能碰到的常见问题就是这些,将 Django 模板这块单独总结一下,希望能为我们后续文章做好铺垫。

7

作者:东奎 发布时间:2011年07月21日
原文:Python 网站开发(四)Django 模板小结
版权所有,转载时必须以链接形式注明作者和原出处并保留本声明。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多