模版变量

  • render(request, templates.html, context=dict_variable)使用的时候需要给context赋值一个dict变量
    • 假设该dict变量是d,它的键是kk,kk对应的值是vv
  • 将这个kk放到模板中,格式是{{ kk }},render执行的时候就会将kk替换成vv
  • 如果想要访问对象的属性,也就是kk是一个类的实例,那么可以通过kk.属性名来访问
  • 如果vv是一个字典,想要访问他的key:subkey对应的value:subvalue,只能通过{{kk.subkey}},不能通过{{kk[subkey]}}访问
    • 所以不能将字典的键设置为keys values items其中一种,会覆盖dict.keys dict.values dict.value属性
  • 如果想要访问列表或者元组,通过kk.index和即可进行访问,不能通过kk[index]进行访问,其中index是列表/元组索引
  • 例子
    1. #urls.py
    2. urlpattern = [
    3. path('templates/', v.url_templates),
    4. ]
    ```python

    urls.py

class Person(object): def init(self, name): self.name = name return

p = Person(“Lee”)

d = { “param”: “jack”, # 该key对应一个str “person”: p, # 该key对应一个实例对象 “dict”: { # 该key对应一个字典 “index1”: 1, “index2”: 2, }, “dict_change”: { # 该key对应一个字典,这个字典的键全部都用了dict的内置函数名 “keys”: “dict.keys has changed”, “values”: “dict.values has changed”, “items”: “dict.items has changed”, },

  1. "list": [ # 该key对应一个list,tuple同理
  2. "list1",
  3. "list2",
  4. ],

}

def url_templates(request): return render(request, “index.html”, context=d)

  1. ```html
  2. <!-- index.html -->
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>Title</title>
  8. </head>
  9. <body>
  10. {{ param }}
  11. <br><br>
  12. {{ person.name }}
  13. <br><br>
  14. {{ dict.index1 }}
  15. <br>
  16. {{ dict.keys }}
  17. <br>
  18. {{ dict.values }}
  19. <br>
  20. {{ dict.items }}
  21. <br><br>
  22. {{ dict_change.keys }}
  23. <br>
  24. {{ dict_change.values }}
  25. <br>
  26. {{ dict_change.items }}
  27. <br><br>
  28. {{ list.0 }}
  29. <br>
  30. </body>
  31. </html>
  • 运行
    模版变量 - 图1