- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Django By Example》第三章 中文 翻译[精品]
《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
原作者:Antonio Melé
(译者注:第三章滚烫出炉,大家请不要吐槽文中图片比较模糊,毕竟都是从PDF中截图出来的,有点丢像素,大致能看就行- -,另外还是渣翻,但个人觉的比前两章翻译的稍微进步了那么一点点- -,希望后面几章翻译的越来越溜,就这样)
第三章
扩展你的blog应用
在上一章中我们学习了表单的基础和在你的项目集成第三方的应用。这一章将会覆盖以下内容:
创建定制的模板标签(template tags)和过滤器(filters)
添加一个站点地图和帖子反馈(post feed)
使用Solr和Haystack构建一个有哪些信誉好的足球投注网站引擎
创建定制的模板标签(template tags)和过滤器(filters)
Django提供了很多内置的标签(tags),例如{% if %}或者{% block %}。你已经使用过一些在你的模板(template)中。你可以在中找到更多关于内置模板标签(template tags)以及过滤器(filter)的参考。
当然,Django也允许你创建自己的模板标签(template tags)来执行定制的动作。当Django的内置模板标签(template tags)无法提供你需要在模板(template)执行的功能,你会发现能创建定制的模板标签(template tags)非常的有用。
创建定制的模板标签(template tags)
Django提供了以下帮助函数(functions)来允许你通过一种简单的方式创建自己的模板标签(template tags):
simple_tag:处理数据并返回一个字符串(string)
inclusion_tag:处理数据并返回一个渲染过的模板(template)
assignment_tag:处理数据并在上下文(context)中放置一个变量(variable)
模板标签(template tags)必须存在Django的应用中。
进入你的blog应用目录,创建一个新的目录命令为templatetags然后在该目录下创建一个空的init.py文件。接着在该目录下继续创建一个文件命名为blog_tags.py。到此,我们的blog应用文件结构应该如下所示:
blog/
__init__.py
models.py
...
templatetags/
__init__.py
blog_tags.py
文件的命令是非常重要的。你需要使用这些模块的命名在模板(template)中加载你的标签(tags)。
我们将要开始创建一个简单标签(simple tag)来获取blog中所有已发布的帖子总数。编辑你刚才创建的blog_tags.py文件,加入以下代码:
from django import template
register = template.Library()
from ..models import Post
@register.simple_tag
def total_posts():
return Post.published.count()
到目前为止,我们已经创建了一个简单的模板标签(template tag)用来取回所有已发布的帖子总数。每一个模板标签(template tags)都需要包含一个叫做register的变量来表明自己是一个有效的标签(tag)库。这个变量是template.Library的一个实例,它是用来注册你自己的模板标签(template tags)和过滤器(filter)。我们定义了一个名为total_posts的标签,通过编写一个Python函数并且使用了@register.simple-tag装饰器使之成为一个简单标签(tag)并登记注册。
Django将会使用这个函数名作为标签(tag)名。如果你想使用别的名字来注册这个标签(tag),你可以指定装饰器的name属性,比如@register.simple_tag(name=my_tag)。
在添加了新的模板标签(template tags)模块后,你必须重启Django开发服务才能使用新的模板标签(template tags)和过滤器(filters)。
在使用定制的模板标签(template tags)之前,你必须在模板(template)中使用{% load %}来加载它们才能生效。就像之前提到的,你需要使用包含了你的模板标签(template tags)和过滤器(filter)的Python模块的名字。打开blog/base.html模板(template)在顶部添加{% load blog_tags %}加
您可能关注的文档
- 《2009年阳城煤炭运销公司月度考核管理办法》[精品].doc
- 《2007年惠阳市左岸春天房地产项目营销策划方案》[精品].doc
- “老板出手,胜券在握”必威体育精装版老板电器整合公关传播方案[精品].ppt
- “根植大地,服务三农”西部农业机械及配件交易市场奠基仪式策划方案[精品].ppt
- 《2012年中石化壳牌煤气化项目EPC总承包策略报告》(101页)[精品].doc
- 《2012年金意陶瓷砖全国促销活动整体执行方案》(47页)[精品].doc
- 《2012年榮盛地產公司薪酬管理制度》(53頁)[精品].doc
- 《2015年必威体育精装版电大教育心理学小抄打印版(可编辑)》[精品].doc
- 《2015年必威体育精装版电大考试推销策略与艺术小抄总汇(呕心沥血整理,值得一看!)》[精品].doc
- “把中国推向世界,把世界引入中国”德稻动漫国际大师讲坛暨CCG德稻创意动漫大赛颁奖典礼公关策划方案[精品].ppt
最近下载
- ACD奥的斯内部资料GECB及GDCB服务器使用.pdf
- 初中七年级地理上册期末试卷(含答案).pdf VIP
- 《工程建设标准强制性条文 电力工程部分 2016版》.docx
- 大学毕业论文-基于pid算法的锅炉恒温控制系统正文.doc VIP
- 南华大学《自动控制原理B》2023-2024学年第一学期期末试卷.doc VIP
- 南华大学《自动控制原理B》2022-2023学年第一学期期末试卷.doc VIP
- 南华大学船山学院《自动控制原理》2021-2022学年第一学期期末试卷.doc VIP
- 金融学(中央财经)中国大学MOOC慕课 章节测验期末考试答案.docx
- 12.2 人生价值贵在奉献(教学课件)-【中职专用】中职思想政治《哲学与人生》同步教学示范课课件+教案(高教版2023·基础模块).pptx VIP
- 2024华医网继续教育心血管病预防与康复题库答案.docx VIP
文档评论(0)