当前位置: 首页 > news >正文

Python Django 之模板语法详解

文章目录

  • 1 准备
    • 1.1 目录结构图
    • 1.2 settings.py
    • 1.3 urls.py
    • 1.4 views.py
    • 1.5 templates
  • 2 填充模板
    • 2.1 字符串
    • 2.2 列表
    • 2.3 字典
    • 2.4 嵌套
  • 3 进阶
    • 3.1 判断语句
    • 3.2 循环语句

1 准备

1.1 目录结构图

  • 创建 Django 项目,目录结构如下:

在这里插入图片描述

1.2 settings.py


# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01.apps.App01Config'  # 注册项目
]TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],  # 模板位置'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]

1.3 urls.py

from django.urls import pathfrom app01 import viewsurlpatterns = [path('index/', views.index),
]

1.4 views.py

from django.shortcuts import render, HttpResponse, redirectdef index(request):return render(request, "index.html")

1.5 templates

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法的学习 </h1>
</body>
</html>

效果图:
在这里插入图片描述

2 填充模板

2.1 字符串

views.py 中:

from django.shortcuts import render, HttpResponse, redirectdef index(request):name = '张三'return render(request, "index.html", {'name': name})

index.html 中:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法的学习 </h1>
<p> 姓名:{{ name }}</p>
</body>
</html>

效果截图:
在这里插入图片描述

2.2 列表

views.py 中:

from django.shortcuts import render, HttpResponse, redirectdef index(request):roles = ['超级管理员', '管理员', '一般用户']return render(request, "index.html", {'roles': roles})

index.html 中:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法的学习 </h1>
<p> {{ roles }}</p>
<p> {{ roles.0 }}</p>
<p> {{ roles.1 }}</p>
<p> {{ roles.2 }}</p>
</body>
</html>

效果截图:
在这里插入图片描述

2.3 字典

views.py 中:

from django.shortcuts import render, HttpResponse, redirectdef index(request):user_info = {"name": '张三', 'age': 18}return render(request, "index.html", {'user_info': user_info})

index.html 中:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法的学习 </h1>
<p> 字典信息:{{ user_info }}</p>
<p> 姓名:{{ user_info.name }}</p>
<p> 年龄:{{ user_info.age }}</p>
</body>
</html>

效果截图:
在这里插入图片描述

2.4 嵌套

views.py 中:

from django.shortcuts import render, HttpResponse, redirectdef index(request):user_info = [{"name": '张三', "age": 18},{"name": '李四', "age": 19},{"name": '王五', "age": 20}]return render(request, "index.html", {'user_info': user_info})

index.html 中:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法的学习 </h1>
<p> 嵌套信息:{{ user_info }}</p>
<p> 第一行:{{ user_info.0 }}</p>
<p> 第一行中的姓名:{{ user_info.0.name }}</p>
</body>
</html>

效果截图:
在这里插入图片描述

3 进阶

3.1 判断语句

views.py 中:

from django.shortcuts import render, HttpResponse, redirectdef index(request):name = '张三'return render(request, "index.html", {'name': name})

index.html 中:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法的学习 </h1>
{% if name == '张三' %}<p> 这个人是张三</p>
{% elif name == '李四' %}<p> 这个人是李四</p>
{% else %}<p>找不到此人</p>
{% endif %}
</body>
</html>

3.2 循环语句

views.py 中:

from django.shortcuts import render, HttpResponse, redirectdef index(request):user_info = {"name": '张三', 'age': 18}return render(request, "index.html", {'user_info': user_info})

index.html 中:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1> 模板语法的学习 </h1>
{% for item in user_info.items %}<div>{{ item }}</div>
{% endfor %}{% for key, value in user_info.items %}<p>{{ key }}</p><p>{{ value }}</p>
{% endfor %}
</body>
</html>

相关文章:

  • SpringMVC Day 11 : 零 xml 配置
  • Docker Tomcat 搭建文件服务器
  • 历年网规上午真题笔记(2016年)
  • 为什么汽车行业普遍选择使用CATIA?
  • lua-web-utils库
  • Java算法:二分查找
  • MPLAB X IDE 仿真打断点提示已中断的断点?
  • 十年JAVA搬砖路——Linux搭建Ldap服务器。
  • GaussDB SQL基础语法示例-数组表达式
  • 【Jenkins】新建任务FAQ
  • 软考高项-49个项目管理过程输入、输出和工具技术表
  • 使用treq库下载Python程序
  • 批量采集各类自媒体平台内容为word文档带图片软件【支持18家自媒体平台的爬取采集】
  • 用pd.DataFrame.to_sql方法插入万行数据耗时21秒
  • 【经典面试】87 字符串解码
  • 30秒的PHP代码片段(1)数组 - Array
  • Android组件 - 收藏集 - 掘金
  • bootstrap创建登录注册页面
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • JWT究竟是什么呢?
  • MySQL数据库运维之数据恢复
  • Python利用正则抓取网页内容保存到本地
  • Spark RDD学习: aggregate函数
  • Web设计流程优化:网页效果图设计新思路
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 利用jquery编写加法运算验证码
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 一、python与pycharm的安装
  • 怎么把视频里的音乐提取出来
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • 扩展资源服务器解决oauth2 性能瓶颈
  • #数学建模# 线性规划问题的Matlab求解
  • (2)MFC+openGL单文档框架glFrame
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (9)目标检测_SSD的原理
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (三)mysql_MYSQL(三)
  • (一)VirtualBox安装增强功能
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)利用webkit抓取动态网页和链接
  • .NET 常见的偏门问题
  • .net 后台导出excel ,word
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @RestControllerAdvice异常统一处理类失效原因
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [C#]扩展方法
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [C++] 统计程序耗时
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用