在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
标签包裹
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>模板学习</title>
</head>
<body>
<h1>模板学习</h1>
<p>姓名:{{ name }}</p>
<p>学科1:{{ subject.0 }}</p>
<p>学科2:{{ subject.1 }}</p>
<p>身高:{{ info.height }}</p>
<p>年龄:{{ info.age }}</p>
<h3>循环</h3>
{% for item in subject %}
{{ item }}
{% endfor %}
<ul>
{% for item in subject %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<table>
{% for row in grade %}
<tr>
<td>{{ row.id }}</td>
<td>{{ row.subject }}</td>
<td>{{ row.score }}</td>
<td>
<a href="">编辑</a>
</td>
<td>
<a href="">删除</a>
</td>
</tr>
{% endfor %}
</table>
</body>
</html>
母版相关
- 中定义block
{% block xx %} {%endblock%}
- 继承母版
{%extends 'xxx.html' %}
- 子版中要替换的内容
{% block xx %} ... {% endblock %}
layout.html 母版示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>母版</title>
{# css 相关block #}
{% block css %} {% endblock %}
</head>
<body>
<div class="pg-header">
<div class="logo left">后台管理系统</div>
<div class="rmenus right">
<div class="avatar right">
<img src="/static/images/admin.png">
<div class="user-info">
<a href="">个人资料</a>
<a href="">注销</a>
</div>
</div>
<a href=""><i class="fa fa-commenting-o" aria-hidden="true"></i> 消息</a>
<a href=""><i class="fa fa-envelope-o" aria-hidden="true"></i> 邮件</a>
</div>
</div>
<div class="pg-body">
<div class="menus">
<a class="menus_class" href={% url 'class' %} ><i class="fa fa-futbol-o"></i> 班级管理</a>
<a class="menus_students" href={% url 'students' %}><i class="fa fa-futbol-o"></i> 学生管理</a>
<a class="menus_tearchers" href={% url 'tearchers' %}><i class="fa fa-futbol-o"></i> 老师管理</a>
</div>
<div class="content">
{# 自定义html block #}
{% block div %}{% endblock %}
</div>
</div>
{# 自定义js block #}
{% block js %}{% endblock %}
</body>
</html>
子版示例内容 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<id>\d+).html$', views.classInfo,name = 'classInfo'),# 可以通过名字查到url`
]
classInfo.html
文件中的a
标签
# 可以反向查找到 url 可以以加参数
<a href="{% url classInfo class.id %}"></a>
<form action="{% url 'editStudent' class.id %} " method="post">
...
</form>
views.py
也可以通过别名反向查询到url
from django.urls import reverse
def classInfo(request,id):
url = reverse('classInfo')
网友评论