Python全栈--Day63 图书管理系统表结构设计

今日内容

1. 模板语言常用语法

2. filter

一. 模板语言常用语法

1. 只需要记两种特殊符号:变量相关的用{{}},逻辑相关的用{%%}。

2. 变量: {{ 变量名 }},  其中变量名由字母数字和下划线组成. 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值。

视图函数中的代码:

def template_test(request):
  name = "小黑"
  age = 18
  name_list = ["王震", "口哥", "邢垚", "孟哥"]
  name_dict = {"first_name": "王震", "last_name": "口哥"}

  class Person(object):
    
    def __init__(self, name, age):
      self.name = name
      self.age = age

    def dream(self):
      return "想要带你去浪漫的西二旗子, 然后一起去上地做面试题, 其实我特别喜欢望京西."

    def __str__(self): # Python3
      return "<Person Object: {}>".format(self.name)

    def __unicode__(self): # Python2
      return "<Person Object: {}>".format(self.name)

  p1 = Person("alex", 48)
  p2 = Person("日天", 29)
  p_list = [p1, p2]
  return render(
    request,
    "test.html",
    {
      "name": name,
      "age": age,
      "name_list": name_list,
      "name_dict": name_dict,
      "person1": p1,
      "p_list": p_list
    }
  )

模板中支持的写法:模板语言不会报错, 要么不显示!!!

<!-- 取变量的值, 如果变量不存在, 那么默认不显示 -->
{{ name }} {{ age }} {{name1}} ==> 小黑 18

<!-- 显示列表 -->
{{ name_list }} ==>["王震", "口哥", "邢垚", "孟哥"]

<!-- 遍历列表, 有一个名字我就生成一个标签 -->
<ul>
  {% for name in name_list %}
    <li>{{name}}</li>
  {% endfor %}
</ul>
输出: 王震
   口哥  ==> 为了书写方便, 省略了无序列表的点
   邢垚
   孟哥

<!-- 按列表索引显示 -->
{{ name_list.0 }} ==> 王震
{{ name_list.2 }} ==> 邢垚

<!-- 显示字典 -->
{{ name_dict }} ==> {"first_name": "王震", "last_name": "口哥"}

<!-- 按键值对显示 -->
{{ name_dict.first_name }} ==> 王震

<!-- 显示一个实例化对象 -->
{{ person1 }} ==> <Person Object: alex>

<!-- 取对象的属性 -->
{{ person1.name }} {{person1.age}} ==> alex 48

<!-- 取对象的方法, 这个方法不能带参数, 如果带参数, 今后学习 -->
{{ person1.dream }} ==> 想要带你去浪漫的西二旗子, 然后一起去上地做面试题, 其实我特别喜欢望京西.
<!-- 取对象列表 -->
{{ p_list }} ==> [<app01.views.Person object at 0x0000000003430D23],<app01.views.Person object at 0x0000000006958463>]

<!-- 取对象列表的元素 -->
{{ p_list.1.name }} ==> 日天

猜你喜欢

转载自www.cnblogs.com/python-web/p/9655033.html