1、模版的执行
return render,HttpResponse,redirect
2、模版语言
- {{ item }}
- {% for item in item_list %} <a>{{ item }}</a> {% endfor %}
forloop.counter
forloop.first
forloop.last
- {% if ordered_warranty %} {% else %} {% endif %}
- 母板:{% block title %}{% endblock %}
子板:{% extends "base.html" %}
{% block title %}{% endblock %}
- 帮助方法:
{{ item.event_start|date:"Y-m-d H:i:s"}}
{{ bio|truncatewords:"30" }}
{{ my_list|first|upper }}
{{ name|lower }}
sample01.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="/static/sample.css" rel="stylesheet"/>
<link href="/static/commons.css" rel="stylesheet"/>
{% block header %}
{% endblock %}
</head>
<body>
<div class="pg_header">今天是个好天气!</div>
{% block content %}
<ul>
{% for item in user_list %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endblock %}
<div class="pg_footer">制造商:maria</div>
<script src="/static/jquery-3.5.1.js"></script>
</body>
</html>
tag.html
<li>{{ item }}</li>
test.html
{% extends 'sample01.html' %}
{% block header %}
<link rel="stylesheet" href="/static/test.css"/>
{% endblock %}
{% block content %}
<img class='img' src="/static/resource/anyeweiji.jpg">
<ul>
{% for item in user_list %}
<!--导入-->
{% include 'tag.html' %}
{% endfor %}
</ul>
{% endblock %}
3、自定义函数
- 1.simple_tag
a. app下创建templatetags目录(只能是templatetags,不能变动)
b. 任意xxoo.py文件
c. 创建template对象 register(只能是register,不能变动)
from django.utils.safestring import mark_safe
register = template.Library()
@register.simple_tag
def my_simple_time(v1,v2,v3):
print(v1,v2,v3)
return v1+v2+v3
d. settings中注册APP
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]
e、在使用自定义simple_tag的html文件中顶部导入之前创建的 xxoo.py 文件名
{% load xxoo %}
f、使用simple_tag
{% my_simple_time 1 1 3 %}
缺点: 不能作为if条件 优点: 参数任意
- 2.filter
a. app下创建templatetags目录(只能是templatetags,不能变动)
b. 任意xxoo.py文件
c. 创建template对象 register(只能是register,不能变动)
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def my_filter_time(v1,v2):
return v1 + v2
d. settings中注册APP
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]
e、在使用自定义filter的html文件中顶部导入之前创建的 xxoo.py 文件名
{% load xxoo %}
f、使用filter
{{ 参数1|函数名:“参数二,参数三” }} {{ 参数1|函数名:数字 }}
{{ 'hello,'| my_filter_time:'world' }}
缺点: 最多两个参数,不能加空格 优点: 能作为if条件