Django视图层与模板层

视图层

一个视图函数,简称视图

视图函数第一个参数必须为HttpRequest实例,且视图必须返回一个HttpResponse对象或者子对象作为响应.
HttpResponse():返回字符串类型
render():返回html文档,并且在返回给浏览器之前还可以给html文件传值
redirect():重定向

JsonResponse

json模块
dumps:将python数据转换成json格式的字符串
loads:将json格式的字符串转换成python格式的数据
JsonResponse和json是一样的操作,可以帮你进行序列化,源码中在进行序列化的时候,除了传入数据之外还有一个参数,但是前面加了两个*,意味着会将传入的字典解开成关键字参数,所以在取消转码时可以用到
在这里插入图片描述

如果需要序列化除字典外的参数需要将safe改为False在这里插入图片描述

html文档快捷添加代码:
在这里插入图片描述

form表单如何上传文件及后端如何获取

1.method必须指定为post
2.enctype必须换成multipart/form-data
3.post请求时需要将settings中middleware第四句注释(当前需要,后面讲解之后就不用了)

enctype就是encodetype就是编码类型的意思
multipart/form-data是指表单数据由多部分构成,既有文本数据,又有文件等二进制格式的数据
默认情况下,enctype的值是
application/x-www-form-urlencoded,不能用于文件上传,只能上传文本格式的数据

request.method:获取请求方式,全大写的字符串
request.POST只能获取到普通的键值对数据,文件不行
request.FILES:获取到post请求文件对象
request.path
request.path_info
request.get_full_path()
以上三种都可以获取到url的后缀,但是get_full_path()能够获取完整的url以及问号后面的参数

FBV和CBV
FBV:基于函数的视图,在views.py中定义函数来处理用户的请求
CBV:基于对象的视图

模板层

模板传值的语法
{{ }}:变量相关
{% %}:逻辑相关
python所有的基本数据类型都能够通过模板语法传递给前端页面.如果是函数的话,必须要有返回值.模板语法会自动帮你调用当前函数拿到返回值
注意:不能给函数传递参数,模板语法不支持给函数传递参数
传递类名时,模板语法也会帮你加括号调用,实例化得到一个对象

数据取值是,可以直接通过句点符获取,不管是索引还是键都可以在这里插入图片描述过滤器(最多有两个参数)
过滤器类似于模板语法的内置方法
基本语法:
{{ 数据|过滤器:参数}}
在这里插入图片描述

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的小初雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值