导读:本篇文章恰卡编程网来给大家介绍有关django子类有哪些的相关内容,希望对大家有所帮助,一起来看看吧。
Django请求与响应(request)与(response)
服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpRequest对象的API
form标签中的‘GET’和‘POST’
在HTML中,form表单的作用是收集标签中的内容,form.../form 中间可以由访问者添加类似于文本,选择,或者一些控制模块等等.然后这些内容将会被送到服务端。
一个表单必须指定两样东西:
form表单使用get方式提交的例子:
可以看见在地址栏会显示参数。
form表单使用post方式提交的例子:
一键多值的getlist方法:
request对象的属性GET、POST都是QueryDict类型的对象
与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
GET属性:
View类视图以请求方式为类方法.
在对应的方式下面编写对应的逻辑函数.
就是将视图中的方法以类的方式书写逻辑。
View类视图的引用.
在url.py中配置路由是通过: as_view()
Django在处理文件上传的时候,文件数据被保存在了request.FILES,FILES中的每个键为input type="file" name="" /中的name
设置文件的存储路径:
1.在项目根目录下static中创建media文件夹
2.图片上传后,会被保存到“/static/media/文件”
3.打开settings.py文件,增加media_root项
FILES只有在请求的方法为POST 且提交的form带有enctype="multipart/form-data" 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象
文件上传视图函数:
HttpResponse对象:
HttpResponse的子类:
返回数据的响应函数有:
HttpResponse() 返回简单的字符串对象
render() 渲染模板
redirect() 重定向
JsonResponse() 返回json数据
HTTP协议:
HTTP(超文本传输协议)是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
客户端和服务器都是怎么记录登录的状态的呢?
浏览器中的----cookie:(请自行查找)
注意:设置cookie值以及删除cookie值都是response对象的操作,而获取cookie是从requeset相应中获得的.
虽然cookie可以保存状态,但注意不要存储敏感信息.
9、Django视图(View与APIView)
django中编辑视图views.py有两种方式,一种是基于类的实现,另外一种是函数式的实现方式,两种方法都可以用。
REST框架提供了一个APIView类,它是Django View类的子类。
View是Django默认的视图基类,APIView是REST framework提供的所有视图的基类, 继承自Django的View,对Django中的View进行了拓展,具备了认证、授权、限流、不同请求数据的解析的功能。
a.统一使用Request对象.data属性去获取json格式的参数、form表单参数、FILES
b、使用Request对象.query_params来获取查询字符串参数
c、Django支持的参数获取方式,DRF都支持
a.对Django中的HttpResponse进行了拓展
b.实现了根据请求头中Accept参数来动态返回
c.默认情况下,如果不传Accept参数或者传参为application/json,那么会返回json格式的数据
d.如果Accept参数为text/html,那么会返回可浏览的api页面(html页面)
e.Response第一个参数为,经过序列化之后的数据(往往需要使用序列化器对象.data)
f.status指定响应状态码
先使用django自带的view,获取一个Card表里面的卡号信息:
models.py设计card表
views.py视图的编写
urls.py设置访问地址
REST framework的APIView继承了django的View类,先序列化Card类,这里的序列化用rest_framework里面的ModelSerializer
配置urls.py,设置访问地址
Django 4.0 正式发布,新的密码哈希器和 Redis 缓存后端
Django 4.0 正式发布,4.0 版本支持 Python 3.8、3.9 和 3.10。随着 Django 4.0 的发布,Django 3.2 的主流支持已经结束。此版本主要有如下亮点:
重要更新
zoneinfo 作为默认时区
Django 3.2 允许使用非 pytz 时区。Django 4.0 是 zoneinfo 作为默认时区:弃用 pytz 且将在 Django 5.0 中删除它。zoneinfo 是 Python 3.9 标准库的一部分,如果你在使用 Python 3.8 ,则会自动安装 zoneinfo 包。
注意,如果你处于非 utc(世界标准时间) 时区,且在使用 pytz normalize() 和 localalize () api,那你可能设置了TIME_ZONE ,需要审查一下代码。4.x 系列版本周期有一个过渡性的 use_depreccated_pytz 设置,允许从 pytz 慢慢过渡到 zoneinfo ,这个设置将在 Django 5.0 中删除。
此外,zoneinfo 作者创建的 pytz_deprecation_shim 包用于帮助从 pytz 进行迁移,这个包提供 shims 来安全地移除 pytz ,还有一个详细的迁移指南,展示如何移动到新的 zoneinfo api。渐进更新可以用 pytz_deprecation_shim和use_depreccated_pytz 这两个过渡设置。
函数的唯一约束
UniqueConstraint() 的新 *expressions 位置参数可以在表达式和数据库函数上创建函数式唯一约束。例如:
使用该 Meta.constraints 选项将函数唯一约束添加到模型中 。
增加 scrypt 密码哈希器
新的 scrypt 密码哈希器比 PBKDF2 更安全,建议使用。但它不是默认选项,因为它需要 OpenSSL 1.1 以上版本和更多的内存。
Redis 缓存后端
新的 django.core.cache.backends.redis.RedisCache 缓存后端为使用 Redis 缓存提供了内置支持。此功能 需要 redis-py 3.0.0 或更高版本。
基于模板的表单渲染
使用模板引擎渲染表单,如用于表单的 render() , get_context() 和 template_name ,用于表单集的 五个渲染相关的属性和方法 。
次要更新项:
django.contrib.admin
django.contrib.auth
django.contrib.gis
django.contrib.postgres
django.contrib.staticfiles
缓存
新的异步 API: django.core.cache.backends.base.BaseCache 开始使缓存后端异步兼容。新的异步方法都有 a 前缀的名称,例如 aadd() , aget() , aset() , aget_or_set() ,或 adelete_many() 。
以后 a 前缀一般会用于方法的异步变体。
CSRF
国际化
通用视图
DeleteView 现在使用 FormMixin ,允许您提供一个 Form 子类,例如带有确认删除之类的复选框。
日志
管理命令
模块
请求和响应
信号
模板
测试 ¶
Django 4.0 是一个超大版本更新,除了上述更新以外还包含一些功能的弃用,以及不向后兼容的更新项,完整版更新内容可在 更新公告 中查看。
结语:以上就是恰卡编程网为大家整理的关于django子类有哪些的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~