django入门 03 模板语法

变量值从views.py传入html

  • 基本语法
    • {{ abc }}
      变量abc外,用双大括号包裹

    • {% for item in abc %}
      语句外,用大括号+百分号包裹

1. 传递字符串

  • views.py中,def内
    注意views.py外部变量(str1)不需要引号包裹,*.html内部变量(strHtml)需要引号包裹
def index(request):
	str1 = "someValue"
	return render(request, 'index.html', {"strHtml1": str})
  • index.html中,内
{{ strHtml1 }}

2. 传递列表

  • views.py中,def内
def index(request):
    list1 = ["someValue1", "someValue2","someValue3"]
    return render(request, 'index.html', {"listHtml1": list1})
  • index.html中,内
{% for item in listHtml1 %} {{ item }} {% endfor %}
{{ listHtml1.0 }}
{{ listHtml1.1 }}
{{ listHtml1.2 }}
  • 效果
    django入门 03 模板语法_第1张图片

3. 传递字典

  • views.py中,def内
def index(request):
    dict1 = {"key1": "someValue1", "key2": "someValue2", "key3": "someValue3"}
    return render(request, 'index.html', {"dictHtml1": dict1})
  • index.html中,内
{% for k in dictHtml1.keys %} {{ k }} {% endfor %}


{% for v in dictHtml1.values %} {{ v }} {% endfor %}


{% for k,v in dictHtml1.items %}
{{ k }}={{ v }}
{% endfor %}


{{ dictHtml1.key1 }}
{{ dictHtml1.key2 }}
{{ dictHtml1.key3 }}
  • 效果

4. 传递列表中的字典

  • views.py中,def内
def index(request):
    list_info = [
        {"name": "zhang", "age": 14, "province": "hunan"},
        {"name": "li", "age": 15, "province": "tianjin"},
        {"name": "tian", "age": 16, "province": "shanghai"},
    ]
    return render(request, "index.html", {"listHtml1": list_info})
  • index.html中,内
{{ listHtml1.1 }}
{{ listHtml1.1.name }}
{{ listHtml1.1.age }}

{% for item in listHtml1 %}
{{ item.name }} : {{ item.age }} : {{ item.province }}
{% endfor %}
    {% for item in listHtml1 %}
  • {{ item.name }} : {{ item.age }} : {{ item.province }}
  • {% endfor %}

  • 效果
    django入门 03 模板语法_第2张图片

  • 附加知识:django html条件语句
{% if strHtml1 == "abc" %}
……
{% elif strHtml1 == "def" %}
……
{% else %}
……
{% endif %}

总结

  • {{ }}、{% %} 这些替换字符串,会被django在渲染html时替换,因而不会被终端用户看见
  • mosh(一个老外)的经验,尽量在views.py里写条件语句,写在html里会造成代码界面混乱

来源:BV1NL41157 武沛齐《2022 B站最详细django3教程(django从入门到实践)》P9

你可能感兴趣的:(django入门 03 模板语法)