- 模板:
模板是Django用于动态生成HTML的便捷方法。模板包含所需HTML输出的静态部分以及通过一些语法描述的动态内容。一个Django项目可以配置一个或多个模板引擎(如果不适用模板,可以不配置模板)。Django内置了自己的模板系统后端,以及Jinjia2,还可以获取其他的模板语言后端,甚至自定义模板后端。
- 模板语言:
Django模板使用Django模板语言标记一个文本文档或者字符串,通过一些变量及标签的语法,可以动态的获得数据(其他的原样输出),从而形成新的HTML文档。
模板变量 {{ variables }}
从URL获取模板变量 {% url 'urlyear' 2020 %}
静态读取资源内容 {% static 'css/header.css' %}
for 遍历标签 {% for type in type_list %} {% endfor %}
if 判断标签 {% if name.type == type.type %} {% endif %}
标签 Tags {% csrf_token %}
过滤器 {{ django|title }}
- 自定义模板:
一个模板后端是继承自后端基本类 django.template.backends.base.BaseEngine。它必须实现 get_template() 和 可选实现 from_string()。
- 数据库展示:
创建 Django 项目,创建一个App,settings中配置好数据库的配置。参见:https://www.jianshu.com/p/9a15851b4d69,
https://www.jianshu.com/p/e8efc6ee6fd7配置URL
在项目的url.py中:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls), # 默认配置,后台管理页面
path('', include('myapp.urls')), # 跳转到 myapp 文件夹下的urls.py 文件中。
]
在App的 urls.py 中添加如下代码:
from django.urls import path
from . import views
urlpatterns = [
path('query/', views.show),
]
- 在app的models.py中添加如下:
from django.db import models
Create your models here.
class Name(models.Model):
# id 自动创建
name = models.CharField(max_length=50)
author = models.CharField(max_length=50)
stars = models.CharField(max_length=5)
在数据库中添加数据:
参见:https://www.jianshu.com/p/fb3444a3a0dcviews.py中添加如下代码:
from django.shortcuts import render
from .models import Name
# Create your views here.
def show(request):
title = '展示数据库内容'
book_list = Name.objects.all()
return render(request, 'index.html', locals())
- 在myapp文件夹下,新建文件夹 templates,然后在这个文件夹下新建文件 index.html

index.html中添加如下代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{ title }}</h1>
{% for book in book_list %}
<div>
{{ book.name }}
{{ book.author }}
{{ book.stars }}
</div>
{% endfor %}
</body>
</html>
- 执行Django项目:
python manage.py runserver
- 打开网页,可以看到数据库内容:

参考资料: