Django Template 网页模板

  • 6. Template 网页模板
    • 6.1 Templeate 基础知识
    • 6.2 Templeate 小案例
    • 6.3 Template 标签

6. Template 网页模板


6.1 Templeate 基础知识

文件目录结构

│ db.sqlite3
│ manage.py

├─Django

│ asgi.py
│ settings.py
│ urls.py
│ wsgi.py
│ init.py

│ └─index

│ admin.py
│ apps.py
│ models.py
│ tests.py
│ urls.py
│ views.py
│ __ init .py

├─migrations
│ init __.py

└─templates
index.html

  • views.py
from django.shortcuts import render
from django.views import Viewclass Index(View):def get(self, request):user_json = {'name': '张三', 'age': 99}return render(request, 'index.html', user_json)
  • urls.py
from django.urls import path
from .views import Indexurlpatterns = [path('index/', Index.as_view())
]

6.2 Templeate 小案例

  • views.py
from django.shortcuts import render
from django.views import Viewclass Index(View):def get(self, request, name):return render(request, 'index.html', name)
  • urls.py
from django.urls import path
from .views import Indexurlpatterns = [path('index/<str:name>', Index.as_view())
]
  • templates

    • index.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1> 人生苦短 我用Python</h1><h1> {{ name }} </h1>
</body>
</html>
  • 测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nA8kzDKD-1653639870091)(C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20220524150632299.png)]

6.3 Template 标签


  • 变量与标签

    变量是用 {{ }} 双大括号包裹。比如我们后端渲染过来的数据,用双大括号来包裹,例如 {{ name }}

    标签有内置标签类型用 {% %} 大括号里面开始结束各一个百分号包裹

  • 内置标签

{% for %} {{% endfor %} 遍历输出内容
{% if %} {% elif %} {% endif %} 条件判断
{% url name args %} 引用路由配置名
{% load %} 加载 Django 的标签库
{% load static %} 加载 Django 的静态库
{% static static_path %} 读取静态资源
{% extends base_template %} 模板继承
{% block data %} {% endblock %} 重写父模板的代码
{% csrf_token %} 跨域密钥 一般在表单(from)中使用
  • for 标签模板
forloop.counter 从1开始计算获取当前索引
forloop.counter0 从0开始计算获取当前索引
forloop.revcounter 索引从最大递减到1
forloop.revcounter0 索引从最大递减到0
forloop.first 当前元素是否为第一个
forloop.last 当前元素是否为最后一个
empty 为空的情况
  • 静态文件配置

    • 项目更目录创建 ‘static’ 与 ‘templates’ 文件同级

    • 在 settings 文件中配置 static 文件夹

      STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'))
  • 静态文件包括

    css 样式文件

    JavaScript 文件

    image 图片文件等

  • 小案例

    • views.py
    from django.shortcuts import render
    from django.views import Viewclass Index(View):def get(self, request):user_json = [{'name': '张三', 'age': 99},{'name': '李四', 'age': 50},{'name': '王五', 'age': 10},{'name': '小钟', 'age': 21}]return render(request, 'index.html', {'user_json': user_json})
    • urls.py
    from django.urls import path
    from .views import Indexurlpatterns = [path('index/', Index.as_view())
    ]
    • settings.py
    # 添加配置STATICFILES_DIRS = [BASE_DIR / "static",
    ]
    • templates

      • index.html
    {% load static %}         {# load static 使用必须引入 #}
    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><title>Title</title>
    </head>
    <body><h1> 人生苦短 我用Python</h1><img src="{% static 'images/1.png' %}  "  style="height: 500px"><table style="border: 2px solid hotpink"><tr style="text-align: center"><th style="border: 2px solid hotpink">姓名</th><th style="border: 2px solid hotpink">年龄</th><th style="border: 2px solid hotpink">编号 counter </th><th style="border: 2px solid hotpink">编号 counter0 </th><th style="border: 2px solid hotpink">编号 revcounter </th><th style="border: 2px solid hotpink">编号 revcounter0 </th><th style="border: 2px solid hotpink">位置 </th></tr>{% for i in user_json %}<tr style="text-align: center"><td style="border: 2px solid hotpink">{{ i.name }}</td><td style="border: 2px solid hotpink">{{ i.age }}</td><td style="border: 2px solid hotpink">{{ forloop.counter }}</td><td style="border: 2px solid hotpink">{{ forloop.counter0 }}</td><td style="border: 2px solid hotpink">{{ forloop.revcounter }}</td><td style="border: 2px solid hotpink">{{ forloop.revcounter0 }}</td>{% if forloop.first%}<td style="border: 2px solid hotpink"> this is first</td>{% elif forloop.last %}<td style="border: 2px solid hotpink"> this is last</td>{% else %}<td style="border: 2px solid hotpink"> </td>{% endif %}</tr>{% endfor %}</table>
    </body>
    </html>
    
  • 效果

Django Template 网页模板(五)相关推荐

  1. Django网页模板的继承include与复用extends

    Django使用网页模板的方式分为两种, 一是建立代码块, 在新的页面导入代码块, 关键词为include 二是建立模板,新的页面在模板基础上扩充, 关键词为extends 导入代码块 include ...

  2. python template languages_更换Django默认的模板引擎为jinja2的实现方法

    本机环境 操作系统:fedora24 python版本:3.5 Django版本:1.11.1 jinja2版本:2.9.6 为何要更换 DTL 先来谈谈Django的模板引擎,找了下,并没有一个确定 ...

  3. php模板引擎jinja,django使用jinja2模板引擎报错: ‘django.template.backends.django.DjangoTemplates’...

    TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2', # 配置Jinja2模板引擎 'DIRS': [os.path ...

  4. python+django加载静态网页模板

    摘要:接着前面Django初体验今天我们来看看Django是如何加载静态html的?1.第一步,在manage.py同级下新建html目录,里面新建一个index.html<!DOCTYPEht ...

  5. django改了html网页没有变化,Django template的html明明改了,前端页面居然没有对应变化?!---Django的小坑...

    写django的时候,我有个模板的名字叫detail.html,被detail视图函数渲染 因为那个detail写乱了,但是里面有东西要参考,我没删掉它,改名为detail_old.html,又在目录 ...

  6. python 动态加载与静态加载_python+django加载静态网页模板解析

    今天我们来看看Django是如何加载静态html的? 我们首先来看一看什么是静态HTML,什么是动态的HTML?二者有什么区别? 静态HTML指的是使用单纯的HTML或者结合CSS制作的包括图片.文字 ...

  7. 第三百一十节,Django框架,模板语言

    第三百一十节,Django框架,模板语言 模板语言就是可以将动态数据在html模板渲染的语言 一.接收值渲染 locals()函数,写在请求响应render()函数里,可以将逻辑处理函数里的变量传到h ...

  8. Django学习笔记(五)

    Django学习笔记(五) MVC和MTV对比 传统的MVC(Model-View-Controller) M 模型层,主要是对数据库层的封装 V 视图层,向用户展示结果 C 控制层,用于请求,获取数 ...

  9. Django 笔记4 -- 模板

    Django 笔记4 – 模板 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Django官 ...

最新文章

  1. php中redis怎么使用,redis 怎么使用
  2. MySQL - mysqldump多种方式实现数据迁移
  3. oracle区号,Oracle 存儲過程
  4. 那些不回微信的人,都在看什么?
  5. 【牛客 - 181D】小叶的巡查(树的直径,数学)
  6. Java:双向链表反转实现
  7. 有多大的大脑互联网正在开发社交网络
  8. weex 项目开发(五)自定义 过滤函数 和 混合 及 自定义 Header 组件
  9. 简谈FPGA实现高斯滤波
  10. TR069协议与商业应用6——TR069动态库开发
  11. django系列9 --- 迁移相关
  12. 解决word模板目录域更新失败的问题
  13. 栈:后进先出的线性表
  14. 人脸识别4-百度商用方案调研
  15. linux gcc忽略警告,gcc 禁止warning
  16. 媒体:中国大学不应培养“精致的利己主义者”
  17. 果壳网(guokr.com)发布了
  18. 深入理解 Linux 内核---访问文件
  19. 错误:java:无效的源发行版:Intellij中的8。 这是什么意思?
  20. 【记录】U盘安装Ubuntu20.04系统

热门文章

  1. 即时通讯云服务·融云开发者沙龙活动(10月份)公告
  2. django book的实践
  3. 详细讲解Java并发编程
  4. Linux在vi/vim编辑文件时(104键)键盘右边数字键输入异常解决方法
  5. 记一次aes解密控制台中文乱码问题
  6. 多次登录同一cookie skey 【低危】
  7. c++ 多重继承,an ambiguous base of
  8. 大数据之路—— 事实表设计
  9. 山东理工ACM【2105】小泉的难题
  10. RV1126环境搭建