Django学习(三)

Django的设计模式及模板层 

传统的MVC(例如java)

Django的MTV

 模板层:

模板加载:

 代码:

views.py

def test_html(request):#方案一# from django.template import loader# 1. 使用loader加载模板# t = loader.get_template('test_html.html')# # 将t转换成html字符串# html = t.render()# return HttpResponse(html)# 方案二from django.shortcuts import renderreturn render(request, 'test_html.html')

urls.py

    path('test_html', views.test_html)

templates.py

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>

视图层与模板层之间的交互:

 代码:

views.py

def test_html(request):#方案一# from django.template import loader# 1. 使用loader加载模板# t = loader.get_template('test_html.html')# # 将t转换成html字符串# html = t.render()# return HttpResponse(html)# 方案二from django.shortcuts import renderdic = {'name': 'zhangsan','age': 18,'sex': '男','hobby': ['吃饭', '睡觉', '打豆豆'],'person': {'name': 'lisi', 'age': 20},}return render(request, 'test_html.html', dic)

templates

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>{{name}}今年{{ age }}性别{{ sex }}爱好{{ hobby }}</h1>
</body>
</html>

urls.py

    path('test_html', views.test_html)

结果:

模板的变量和标签:

  

 代码:

urls.py

    path('test_html_param', views.test_html_param)

views.py

def test_html_param(request):dic = {}dic['int'] = 88dic['str'] = 'xiaobai'dic['lst'] = ['Tom', 'Jack', 'Lily']dic['dict'] = {'a': 9, 'b': 8}dic['func'] = say_hidic['classobj'] = Dog()return render(request, 'test_html_param.html', dic)def say_hi():return 'hahah'class Dog(object):def say(self):return 'wangwang'

templates

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h3>int是{{int }}</h3>
<h3>str是{{str }}</h3>
<h3>lst 是{{lst}}</h3>
<h3>lst是{{lst.0 }}</h3>
<h3>dict是{{dict}}</h3>
<h3>dict['a']是{{dict.a}}</h3>
<h3>function是{{func}}</h3>
<h3>class obj是{{classobj.say}}</h3>
</body>
</html>

结果:

模板标签:

 代码:

urls.py

    path('test_if_for', views.test_if_for)

views.py

def test_if_for(request):dic = {}dic['x'] = 5return render(request, 'test_if_for.html', dic)

templates

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>测试if和for</title>
</head>
<body>
{% if x >= 4 %}
输入的值大于等于4
{% else %}
输入的值为小于4
{% endif %}
</body>
</html>

 注意:在标签中使用变量时,直接使用变量名即可,不需要加双大括号

for标签:

 

urls: 

    path('test_if_for', views.test_if_for)

views.py:

def test_if_for(request):dic = {}dic['x'] = 5dic['ls'] = ['a', 'b', 'c']return render(request, 'test_if_for.html', dic)

templates:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>测试if和for</title>
</head>
<body>
<p>
{% if x >= 4 %}
输入的值大于等于4
{% else %}
输入的值为小于4
{% endif %}
<br>
{% for name in ls %}{%  if forloop.first %}########{% endif %}{{ forloop.counter0 }}{{ name }}</p>{% if forloop.last %}########{% endif %}
{% empty %}
没有值
{% endfor %}
</body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/451919.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WIFI实现透传+接线图

单片机通过TX接WIFI模块的RX将设置的AT代码写入WIFI模块&#xff08;连接WIFI调为设备模式&#xff08;有设备&#xff0c;路由&#xff0c;双模等模式&#xff09;&#xff09; WIFI模块将响应信号通过TX通过CH340发给PC的RX 通过STC-ISP或安信可串口调试助手查看响应信息 …

Parallels Desktop20最新版本虚拟机 让双系统无缝切换成为现实!

Parallels Desktop 20最新版本虚拟机&#xff1a;让双系统无缝切换成为现实&#xff01; 嘿&#xff0c;各位小伙伴们&#xff5e;&#x1f389; 如果你是像我一样&#xff0c;既爱 Windows 又放不下 macOS 的纠结星人&#xff0c;那今天这篇分享你可要仔细看啰&#xff01;&am…

Linux学习笔记9 文件系统的基础

一、查看文件组织结构 Linux中一切都是文件。 Linux和Win的文件系统不是一个结构&#xff0c;Linux存在的根目录是所有目录的起点。 所有的存储空间和设备共享一个根目录&#xff0c;不同的磁盘块和分区挂载在其下&#xff0c;成为某个子目录的子目录&#xff0c;甚至设备也挂…

Windows系统部署redis自启动服务【亲测可用】

文章目录 引言I redis以本地服务运行(Windows service)使用MSI安装包配置文件,配置端口和密码II redis服务以终端命令启动缺点运行redis-server并指定端口和密码III 知识扩展确认redis-server可用性Installing the Service引言 服务器是Windows系统,所以使用Windows不是re…

图像识别解决方案

图像识别解决方案是一种基于人工智能技术的图像处理和识别方法&#xff0c;能够实现对图像内容的自动分析和理解。以下是朗观视觉小编对图像识别解决方案的详细阐述&#xff1a; 一、技术原理 图像识别解决方案的核心原理是机器学习算法和深度学习网络。通过收集大量的图像数据…

【数据丢失不再怕】新手体验四款恢复数据神器

作为一个电脑新手&#xff0c;我最近遇到了一个让人头疼的问题——不小心删除了一些重要的文件&#xff01;那种感觉&#xff0c;就像是心爱的玩具突然找不到了&#xff0c;整个人都慌了。但是&#xff0c;别担心&#xff0c;我找到了四款数据恢复工具&#xff0c;它们就像我的…

Unity接入人工智能

在Unity接入人工智能中&#xff0c;本篇实现了接入百度智能云ai进行npc智能对话&#xff0c;通过http方式&#xff0c;并非插件&#xff0c;适合于所有支持Http链接的Unity版本。对于Chartgpt可以参考本篇内容的实现过程。 1-4节讲解测试&#xff0c;第5节讲解Unity中的实现&a…

15分钟学Go 第5天:数据类型

第5天&#xff1a;数据类型 在Go语言中&#xff0c;数据类型是构成程序的重要基础&#xff0c;它们定义了可以在程序中使用的数据特征。了解不同的数据类型及其用途将帮助我们更有效地编写Go代码。在本章节中&#xff0c;我们将详细探讨Go语言的基本数据类型。 1. 数据类型的…

jmeter发送post请求

在jmeter中&#xff0c;有两种常用的请求方式&#xff0c;get和post.它们两者的区别在于get请求的参数一般是放在路径中&#xff0c;可以使用用户自定义变量和函数助手等方式进行参数化&#xff0c;而post请求的参数不能随url发送&#xff0c;而是作为请求体提交给服务器。而在…

Linux 手撕线程池

前言 线程池 是 池化技术 中很典型的一个&#xff0c;它旨在高效的管理和复用线程资源&#xff01;在现在的计算机体系中&#xff0c;线程是执行任务&#xff08;调度&#xff09;的基本单位。然而&#xff0c;频繁的创建和销毁线程也会带来较大的开销&#xff0c;包括系统资源…

Unity之XR Interaction Toolkit 射线拖拽3DUI

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、想实现的功能二、实现原理1.UI挂在XRGrabInteractable、刚体、BoxCollder2.修改刚体属性3.加BoxCollder 总结 前言 VR项目里正常情况有放置两种3DUI的方式…

音视频基础知识分享

音视频基础知识分享 RKMedia的各个组件及其交互 首先上图&#xff1a; 考虑到公司业务主要是相机&#xff0c;所以&#xff0c;主要去关注图像数据流&#xff0c;对于音频数据流直接忽略。 图像数据流向&#xff1a; Camera Sensor将光信号转换成电信号&#xff08;Raw数据&…

指针——函数指针数组

&#xff08;一&#xff09;前文回顾 1、前篇代码分析 void(*signal(int , void(*)(int)))(int) ; 那么这串代码究竟是什么呢&#xff1f; 别慌&#xff0c;让我们来一步一步拆解&#xff0c;首先我们通过之前的学习&#xff0c;已经明白了什么是函数指针&#xff08;如果有…

基于Python实现“气象家园”自动签到

一、安装库 pip install OAFuncs 二、导入库 from OAFuncs.oa_sign.meteorological import sign_in_meteorological_home as sign三、签到 email your_email # 16031215qq.com password your_pwd sign(email, password…

VS Code开发qt项目

没整明白&#xff0c;尴尬 安装扩展 设置cmake路径 前提是已经安装了QT 报错 用msvc选windows启动&#xff0c;用mingw则选gdb启动

基于语音识别的停车共享小程序(lw+演示+源码+运行)

目 录 1 绪论1 1.1 课题研究背景1 1.2 研究现状1 1.3 论文结构安排1 2 系统关键技术2 2.1 微信小程序2 2.2 微信Web开发者工具2 2.3 JavaScript简介2 2.4 微信小程序API接口2 2.5 MYSQL数据库2 3 系统分析1 3.1 可行性分析1 3.1.1 技术可行性1 3.1.2 经济可行性1…

飞腾X100适配Ubuntu说明

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

[Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器

目录 一. IP协议头格式 学习任何协议前的两个关键问题 IP 报头与有效载荷分离 分离方法 为什么需要16位总长度 如何交付 二. 网络通信 1.IP地址的划分理念 2. 子网管理 3.网络划分 CIDR&#xff08;无类别域间路由&#xff09; 目的IP & 当前路由器的子网掩码 …

不做邮箱投稿的奴隶,要做单位信息宣传考核计分投稿的主人

在我刚开始承担单位的信息宣传考核任务时,心中充满了激情与期待。作为一名普通员工,我深知信息宣传的重要性,它不仅关乎单位的形象,更是我们对外沟通的桥梁。然而,现实的残酷让我逐渐体会到了压力的沉重。 最初,我选择了通过邮箱进行投稿。这种方式听起来似乎是最优雅的选择,毕…

页面请求快速迁移至接口工具(apifox、postman) 进行针对性调试

文章目录 需求背景实操 需求背景 自动携带参数&#xff0c;仅进行少量更改 在功能模块开发前期&#xff0c;难免会有让后端协助造数据&#xff0c;对通业务流程的场景 不确定造的数据或者后端的改动是否满足自己的需求&#xff0c;改一次有问题又等着改了再看很浪费时间 调用接…