Django框架学习二:模板语言

urls.py 中添加index方法,并返回数据。

def index(resquest):
    return render(resquest,'index.html',{
        'name':'xiaoming', # string
        'subject':['语文','数学'], # list
        'info':{'age':'10岁','height':'1.5m'},# dict
        'grade':[
            {'id':1,'subject':'语文','score':'100'},
            {'id': 2, 'subject': '数学', 'score': '60'},
        ] # list[dict]
    })
urlpatterns = [
    path('admin/', admin.site.urls),
    path('login/', login),
    path('index/',index),
]

然后再index.html中解析。通过{{xxx}}的形式解析
字典: .key解析
数组:.下标 解析
循环:{% for item in items %} {{item}} {%endfor%}解析

if 判断:

        {% if 10 >5 %}
            ...
        {% else %}
            ...
        {% endid %}

if ... in 判断

{% if name in list %}
           ...
{% endif %}

for循环

{% for row in grade %}
  ...
{% endfor %}

可以使用HTML标签包裹




    
    模板学习


    

模板学习

姓名:{{ name }}

学科1:{{ subject.0 }}

学科2:{{ subject.1 }}

身高:{{ info.height }}

年龄:{{ info.age }}

循环

{% for item in subject %} {{ item }} {% endfor %}
    {% for item in subject %}
  • {{ item }}
  • {% endfor %}
{% for row in grade %} {% endfor %}
{{ row.id }} {{ row.subject }} {{ row.score }} 编辑 删除

母版相关

  • 中定义block {% block xx %} {%endblock%}
  • 继承母版 {%extends 'xxx.html' %}
  • 子版中要替换的内容 {% block xx %} ... {% endblock %}

layout.html 母版示例




    
    母版
      {# css 相关block #}
    {% block css %} {% endblock %}


{# 自定义html block #} {% block div %}{% endblock %}
{# 自定义js block #} {% block js %}{% endblock %}

子版示例内容 class.html

{#要继承的母版#}
{% extends 'layout.html' %}

{% block css %}
    {# 子版专属的css样式内容 #}
{% endblock %}

{% block div %}
     {# 子版专属的html内容 #}
{% endblock %}

{% block js %}
     {# 子版专属的js内容 #}
{% endblock %}

根据 url 的 name 反生成 url (只有Django框架中有url的别名

urls.py 中配置name别名

urlpatterns = [
    #  查询班级详情
    re_path('^classInfo/(?P\d+).html$', views.classInfo,name = 'classInfo'),# 可以通过名字查到url`
]

classInfo.html文件中的 a标签

# 可以反向查找到 url  可以以加参数


...

views.py 也可以通过别名反向查询到url

from django.urls import reverse

def classInfo(request,id):
    url = reverse('classInfo')
   

你可能感兴趣的:(Django框架学习二:模板语言)