- Django 模版的知识点:
- ①对于单独的变量
- 用safe过滤器为单独的变量关闭自动转意:
- {{ data }}------{{ data|safe }}
- This will be escaped: <b>
- This will not be escaped: <b>
- autoescape 标签有两个参数on和off 有时,你可能想阻止一部分自动转意,对另一部分自动转意。 这是一个模板
- 的例子:
- Auto‐escaping is on by default. Hello {{ name }}
- {% autoescape off %}
- This will not be auto‐escaped: {{ data }}.
- Nor this: {{ other_data }}
- {% autoescape on %}
- Auto‐escaping applies again: {{ name }}
- {% endautoescape %}
- {% endautoescape %}
- 通常,模板作者没必要为自动转意担心. 基于Pyhton的开发者(编写VIEWS视图和自定义过滤器)只需要考虑哪些
- 数据不需要被转意,适时的标记数据,就可以让它们在模板中工作。
- 所有字符常量没有经过转义就被插入模板,就如同它们都经过了safe过滤。 这是由于字符常量完全由模板作者决
- 定,因此编写模板的时候他们会确保文本的正确性。
- 这意味着你必须这样写
- {{ data|default:"3 < 2" }}
- {%load%}语句是通过指定的Python模块名而不是应用名来加载标签/过滤器的
- 如果你使用的是Python 2.4或者更新的版本,你可以使用装饰器register.filter():
- token.split_contents() 方法按空格拆分参数同时保证引号中的字符串不拆分
- jango/template/defaulttags.py
- 对于用`` ForeignKey`` 来定义的关系来说,在关系的另一端也能反向的追溯回来,只不过由于不对称性的关系
- 而稍有不同。 通过一个`` publisher`` 对象,直接获取 books ,用 publisher.book_set.all() ,如下:
- >>> p = Publisher.objects.get(name='Apress Publishing')
- >>> p.book_set.all()
- [<Book: The Django Book>, <Book: Dive Into Python>, ...]
- 实际上,book_set 只是一个 QuerySet,所以它可以像QuerySet一样,能实现数据过滤和分
- 切,例如:
- >>> p = Publisher.objects.get(name='Apress Publishing')
- >>> p.book_set.filter(name__icontains='django')
- [<Book: The Django Book>, <Book: Pro Django>]
- 属性名称book_set是由模型名称的小写(如book)加_set组成的。
- 当处理模型修改的时候,将Django的数据库层的工作流程铭记于心是很重要的。
- 如果模型包含一个未曾在数据库里建立的字段,Django会报出错信息。 当你第一次用Django的数据库
- API请求表中不存在的字段时会导致错误(就是说,它会在运行时出错,而不是编译时)。
- Django不关心数据库表中是否存在未在模型中定义的列。
Django 学习笔记(九)
最新推荐文章于 2024-10-02 06:15:56 发布