Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Django学习总结(二) #62

Open
PyxYuYu opened this issue Dec 7, 2016 · 0 comments
Open

Django学习总结(二) #62

PyxYuYu opened this issue Dec 7, 2016 · 0 comments
Labels

Comments

@PyxYuYu
Copy link
Owner

PyxYuYu commented Dec 7, 2016

Life is a flower, and love is the honey of the flower.

0x01 Django

  • Django Blog 学习总结
    • Django Tips
      • Django 处理请求方式
        • 浏览器发起请求后,Django 会查找 settings.py 文件,然后在其中找到 ROOT_URLCONF 参数 ,此参数指向了 urls.pyDjango 会按顺序逐个匹配 URLconf 中的 URLpatterns ,找到匹配的后就调用相关联的 view 视图函数
      • 动态 URL
        • 正则表达式中,使用通配符,可以匹配动态 URL
        • 正则表达式可以用圆括号来从文本中提取匹配的字符串
          • 比如: r'(?P<year>\d{4})/$' 动态匹配4位年份数字, URL 就可以从 1000-9999
      • 模板 templates
        • 模板是一个文本,定义了占位符和各种用于规范文档该如何显示的各部分基本逻辑(模板标签)
        • 模板中用两个大括号括起来的文字,称为 变量 ,比如 {{ var }}
        • 模板中用大括号和百分号包围的文本是 模板标签 , 比如 {% if %}
        • 模板中用管道符 | 调用的是 filter过滤器 ,过滤器是一种最便捷的转换变量输出格式的方式,比如 {{body|truncatewords:5}}
        • {% if %} 模板标签
          • PythonDjango 模板系统中,以下对象相当于布尔值的 False
            • 空列表
            • 空元组
            • 空字典
            • 空字符串
            • 零值
            • 特殊对象 None
            • 对象 False
          • {% if %} 标签接受 andornot 来对多个变量做判断,不允许在同一标签中同时使用 andor ,但是可以多次使用同一个逻辑操作符,不支持用圆括号来组合比较操作,并没有 {elif} 标签
        • {% for %} 标签,给标签增加一个 reversed 使得该列表被反向迭代,比如 {% for x in y reversed %} , {% for %} 标签支持一个可选的 {% empty %} 分句,通过它可以定义当列表为空时的输出内容
          • Django 不支持退出循环操作,如果想退出循环,可以改变正在迭代的变量,让其仅包含需要迭代的项目,Django 也不支持 continue 语句,无法让当前迭代操作跳回到循环头部
          • 每个 {% for %} 循环中有一个称为 forloop 的模板变量,这个变量提示循环进度信息,仅能在循环中使用, {{% endfor %}} 之后就无法使用了
            • forloop.counter 表示当前循环的执行次数的整数计数器,从 1 开始
            • forloop.counter0forloop.counter 类似,但是是从 0 开始计数的
            • forloop.revcounter 表示循环中剩余项的整型变量,在循环初次执行时, forloop.revcounter 被设置成序列中项的总数,最后一次执行时,这个变量就是 1
            • forloop.revcounter0 则以 0 作为索引结束,第一次执行的时候,该变量为序列项的个数减 1
            • forloop.first 是一个布尔值,如果第一次执行循环,那么被设置为 True
            • forloop.last 是一个布尔值,在最后一次执行循环时,被设置为 True ,常见的用法: 利用 if 来用于分隔各个 for 输出的结果
            • forloop.parentloop 是指向当前循环的上一级循环的 forloop 对象的引用(在嵌套循环的情况下)
        • {% ifequal %} {% ifnotequal %} 标签,比较两个变量的值,比较的参数可以是硬编码的字符串,随便用单引号或者双引号引起来,和 {% if %} 类似,支持可选的 {% else %} 标签,只有模板变量,字符串,整数,小数可以作为其中的参数,其他的字典、列表、布尔都不可用
        • 模板注释,可用 {# #} 来包裹,只能单行,不能跨越多行,多行的话需要用 {% comment %}{% endcomment %}
        • 模板过滤器,使用管道符 | ,可以被套接,也就是逐层过滤,从左到右过滤处理
      • Django 喜欢在每一个元组元素后面加 逗号 ,不管它是不是只有一个元素
@PyxYuYu PyxYuYu added the Django label Dec 7, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant