Django 学习笔记(九)

来源:互联网 发布:centos 6删除防火墙 编辑:程序博客网 时间:2024/05/19 00:44
  1. Django 模版的知识点:
  2. ①对于单独的变量
  3. 用safe过滤器为单独的变量关闭自动转意:
  4.  {{ data }}------{{ data|safe }}
  5.  This will be escaped: <b>
  6.  This will not be escaped: <b>
  7. autoescape 标签有两个参数on和off 有时,你可能想阻止一部分自动转意,对另一部分自动转意。 这是一个模板
  8. 的例子:
  9. Auto‐escaping is on by default. Hello {{ name }}
  10. {% autoescape off %}
  11. This will not be auto‐escaped: {{ data }}.
  12. Nor this: {{ other_data }}
  13. {% autoescape on %}
  14. Auto‐escaping applies again: {{ name }}
  15. {% endautoescape %}
  16. {% endautoescape %}
  17. 通常,模板作者没必要为自动转意担心. 基于Pyhton的开发者(编写VIEWS视图和自定义过滤器)只需要考虑哪些
  18. 数据不需要被转意,适时的标记数据,就可以让它们在模板中工作。
  19. 所有字符常量没有经过转义就被插入模板,就如同它们都经过了safe过滤。 这是由于字符常量完全由模板作者决
  20. 定,因此编写模板的时候他们会确保文本的正确性。
  21. 这意味着你必须这样写
  22. {{ data|default:"3 &lt; 2" }}


  23. {%load%}语句是通过指定的Python模块名而不是应用名来加载标签/过滤器的
  24. 如果你使用的是Python 2.4或者更新的版本,你可以使用装饰器register.filter():
  25. token.split_contents() 方法按空格拆分参数同时保证引号中的字符串不拆分




  26. jango/template/defaulttags.py
  27. 对于用`` ForeignKey`` 来定义的关系来说,在关系的另一端也能反向的追溯回来,只不过由于不对称性的关系
  28. 而稍有不同。 通过一个`` publisher`` 对象,直接获取 books ,用 publisher.book_set.all() ,如下:
  29. >>> p = Publisher.objects.get(name='Apress Publishing')
  30. >>> p.book_set.all()
  31. [<Book: The Django Book>, <Book: Dive Into Python>, ...]
  32. 实际上,book_set 只是一个 QuerySet,所以它可以像QuerySet一样,能实现数据过滤和分
  33. 切,例如:
  34. >>> p = Publisher.objects.get(name='Apress Publishing')
  35. >>> p.book_set.filter(name__icontains='django')
  36. [<Book: The Django Book>, <Book: Pro Django>]
  37. 属性名称book_set是由模型名称的小写(如book)加_set组成的。



  38. 当处理模型修改的时候,将Django的数据库层的工作流程铭记于心是很重要的。
  39. 如果模型包含一个未曾在数据库里建立的字段,Django会报出错信息。 当你第一次用Django的数据库
  40. API请求表中不存在的字段时会导致错误(就是说,它会在运行时出错,而不是编译时)。
  41. Django不关心数据库表中是否存在未在模型中定义的列。
原创粉丝点击