变量

  • 变量作用:计算并输出上下文传入的数据
  • 变量语法:
    • {{ 变量 }}
  • 变量名规则:由字母、数字、下划线和点组成
    • 变量名不能以下划线开头
  • 变量解析规则:当模版引擎遇到点如book.name,会按照下列顺序解析:
    • 1.字典book['name']
    • 2.先属性后方法,将book当作对象,查找属性name,如果没有再查找方法name()
    • 3.如果是格式为book.0则解析为列表book[0]
  • 如果变量不存在则插入空字符串 ''
  • 在模板中调用方法时不能传递参数
    • 如果要使用带参数的方法,需要使用过滤器

变量演练

  • 正则匹配urls

      # 变量
      url(r'^variable/$', views.variable),
    
  • 视图

      # 变量
      def variable(request):
    
          # 字典:演练key取值
          dict = {'age':'18'}
          # 模型对象:演练对象属性取值
          book = BookInfo()
          book.name = 'zxc'
    
          context = {'dict':dict, 'book':book}
          return render(request, 'Book/variable.html', context)
    
  • 模板

    • 按照字典的键值取变量值
    • 按照对象的属性取变量值
    • 变量不存,取出空字符串
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>变量</title>
</head>
<body>

{#按照字典的键值取变量值#}
<h1>{{ dict.age }}</h1>

{#按照对象的属性取变量值#}
<h1>{{ book.name }}</h1>

{#变量不存#}
<h1>{{ book.page }}</h1>

</body>
</html>
  • 浏览效果