1.1 templates模版
def index(request):
return render(request,"user_list.html")
# 去app目录下根据app注册顺序从templates目录寻找user_list.html
1.2 静态文件
1.2.1 一般静态文件的目录结构:
- 图片
- css
- js
1.2.2 静态文件导入
- 创建static文件夹
- 引用静态文件
<!DOCTYPE html>
<html Lang="en">
<head>
{% load static %}
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css' %}">
</head>
<body>
<h1>用户列表</h1>
<img src="{% static 'img/1.png' %}" alt="">
<script src="{% static 'js/jquery-3.6.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.js' %}"></script>
</body>
</html>
1.3 django模板语法
在html中写占位符,由数据对占位符进行替换
# 在views.py中编辑
def tpl(request):
name = "韩超"
# 列表
rules = ["哼哼","guan"]
# 字典
user_list = {"name": "你好", "salary": 10000}
data_list = [
{"name": "你好", "salary": 10000}
{"name": "你好o", "salary": 100}
{"name": "你好i", "salary": 1000}
]
# {{ n3.1 }}
# {{ n3.1.name }}
# {% for item in n3%}
# <div>{{ item.name }} {{ item.salary }}</div>
# 用render传参
return render(request, 'tpl.html', {"n1":name, "n2":rules, "n3": user_info})
<!--在tpl.html中编辑-->
<div>{{ n1 }}</div>
<!--列表-->
<div>{{ n2 }}</div>
<div>{{ n2.0 }}</div>
<div>{{ n2.1 }}</div>
{% for item in n2 %}
<span>{{ item }}</span> <!--循环输出-->
{% endfor %}
<!--字典取值-->
{{ n3 }}
{{ n3.name }} <!--你好-->
{{ n3.salary }} <!--10000-->
<!--字典循环-->
{% for item in n3.values %}
<!-- {% for k,v in n3.items %} 取keys和value -->
<!-- <span>{{ k }} = {{ v }} </span> -->
<span>{{ item }}</span> <!--你好 10000-->
{% endfor %}
{% if n1 == "韩超业" %}
<h1>哒哒哒斑哒</h1>
{% elif n1 == "dff" %}
{% else %}
<h1>嘟嘟嘟嘟</n1>
{% endif %}
2.1 实例
- 制作新闻页面
# views.py中编写
def news(req):
import requests
resp = request.get("http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2023/06/news")
data_list = res.json()
print(data_list)
return render(req,'news.html',{"news_list":data_list})
# html中编写
{% for item in news_list %}
<li>{{ item.new_title }} 时间:{{ item.post_time }}</li>
{% endfor %}
```