Django Template 网页模板(五)
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 网页模板(五)相关推荐
- Django网页模板的继承include与复用extends
Django使用网页模板的方式分为两种, 一是建立代码块, 在新的页面导入代码块, 关键词为include 二是建立模板,新的页面在模板基础上扩充, 关键词为extends 导入代码块 include ...
- python template languages_更换Django默认的模板引擎为jinja2的实现方法
本机环境 操作系统:fedora24 python版本:3.5 Django版本:1.11.1 jinja2版本:2.9.6 为何要更换 DTL 先来谈谈Django的模板引擎,找了下,并没有一个确定 ...
- php模板引擎jinja,django使用jinja2模板引擎报错: ‘django.template.backends.django.DjangoTemplates’...
TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2', # 配置Jinja2模板引擎 'DIRS': [os.path ...
- python+django加载静态网页模板
摘要:接着前面Django初体验今天我们来看看Django是如何加载静态html的?1.第一步,在manage.py同级下新建html目录,里面新建一个index.html<!DOCTYPEht ...
- django改了html网页没有变化,Django template的html明明改了,前端页面居然没有对应变化?!---Django的小坑...
写django的时候,我有个模板的名字叫detail.html,被detail视图函数渲染 因为那个detail写乱了,但是里面有东西要参考,我没删掉它,改名为detail_old.html,又在目录 ...
- python 动态加载与静态加载_python+django加载静态网页模板解析
今天我们来看看Django是如何加载静态html的? 我们首先来看一看什么是静态HTML,什么是动态的HTML?二者有什么区别? 静态HTML指的是使用单纯的HTML或者结合CSS制作的包括图片.文字 ...
- 第三百一十节,Django框架,模板语言
第三百一十节,Django框架,模板语言 模板语言就是可以将动态数据在html模板渲染的语言 一.接收值渲染 locals()函数,写在请求响应render()函数里,可以将逻辑处理函数里的变量传到h ...
- Django学习笔记(五)
Django学习笔记(五) MVC和MTV对比 传统的MVC(Model-View-Controller) M 模型层,主要是对数据库层的封装 V 视图层,向用户展示结果 C 控制层,用于请求,获取数 ...
- Django 笔记4 -- 模板
Django 笔记4 – 模板 Django 系列笔记是笔者学习.实践使用 Django 的相关笔记,大量参考了知了课堂的<Django零基础到项目实战>教程. 参考文档: Django官 ...
最新文章
- php中redis怎么使用,redis 怎么使用
- MySQL - mysqldump多种方式实现数据迁移
- oracle区号,Oracle 存儲過程
- 那些不回微信的人,都在看什么?
- 【牛客 - 181D】小叶的巡查(树的直径,数学)
- Java:双向链表反转实现
- 有多大的大脑互联网正在开发社交网络
- weex 项目开发(五)自定义 过滤函数 和 混合 及 自定义 Header 组件
- 简谈FPGA实现高斯滤波
- TR069协议与商业应用6——TR069动态库开发
- django系列9 --- 迁移相关
- 解决word模板目录域更新失败的问题
- 栈:后进先出的线性表
- 人脸识别4-百度商用方案调研
- linux gcc忽略警告,gcc 禁止warning
- 媒体:中国大学不应培养“精致的利己主义者”
- 果壳网(guokr.com)发布了
- 深入理解 Linux 内核---访问文件
- 错误:java:无效的源发行版:Intellij中的8。 这是什么意思?
- 【记录】U盘安装Ubuntu20.04系统