Python Web编程,Django框架 -- (5) Django模板开发

  1. 模板:

模板是Django用于动态生成HTML的便捷方法。模板包含所需HTML输出的静态部分以及通过一些语法描述的动态内容。一个Django项目可以配置一个或多个模板引擎(如果不适用模板,可以不配置模板)。Django内置了自己的模板系统后端,以及Jinjia2,还可以获取其他的模板语言后端,甚至自定义模板后端。

  1. 模板语言:

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 }}

  1. 自定义模板:

一个模板后端是继承自后端基本类 django.template.backends.base.BaseEngine。它必须实现 get_template() 和 可选实现 from_string()。

  1. 数据库展示:

在项目的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)
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
image.png

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

  • 打开网页,可以看到数据库内容:
image.png

参考资料:

  1. django 文档 模板:https://docs.djangoproject.com/zh-hans/3.1/topics/templates/
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 安装 (pip install django)在命令行下输入:django-admin,若显示其所有指令则说明安装...
    dawsonenjoy阅读 5,362评论 0 5
  • 一、Django框架前言知识: 1、C/S和B/S的区别: C/S结构软件:客户端/服务端软件,即客户端要自己下载...
    月下独酌123阅读 10,389评论 0 36
  • restframework restframework简介 它是基于Django的,帮助我们快速开发符合restf...
    DayBreakL阅读 4,233评论 0 2
  • 一、Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的...
    BerL1n阅读 11,395评论 0 10
  • 推荐指数: 6.0 书籍主旨关键词:特权、焦点、注意力、语言联想、情景联想 观点: 1.统计学现在叫数据分析,社会...
    Jenaral阅读 11,076评论 0 5

友情链接更多精彩内容