【Django】创建用户,中间件,表单组件

简介: 【Django】创建用户,中间件,表单组件

HTTP无状态协议,是指协议对于交互性场景没有记忆能力,每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保创建用户对象的三种方法:

  • create():创建一个普通用户,密码是明文的。
  • create_user():创建一个普通用户,密码是密文的。
  • create_superuser():创建一个超级用户,密码是密文的,要多传一个邮箱 email 参数。

参数:

  • password:密码。
  • cookie 弥补了 http 无状态的不足,让服务器知道来的人是"谁",但是 cookie 以文本的形式保存在浏览器端,安全性较差,且最大只支持 4096 字节,所以只通过 cookie 识别不同的用户,然后,在对应的 session 里保存私密的信息以及超过 4096 字节的文本。ie:set_cookie("sessionid",随机字符串)** 响应给浏览器
  • 登录,认证 和 登录login------------>user绑定到request

注销,logout

Django 中间件

Django 中间件是修改 Django request 或者 response 对象的钩子,可以理解为是介于 HttpRequest 与 HttpResponse 处理之间的一道处理过程。

  • Django 中间件作用:
  • 修改请求,即传送到 view 中的 HttpRequest 对象。
  • 修改响应,即 view 返回的 HttpResponse 对象。
  • 中间件组件配置在 settings.py 文件的 MIDDLEWARE 选项列表中。

配置中的每个字符串选项都是一个类,也就是一个中间件。

自定义中间件

中间件组件配置在 settings.py 文件的 MIDDLEWARE 选项列表中。

配置中的每个字符串选项都是一个类,也就是一个中间件。

自定义中间件

中间件可以定义四个方法,分别是:

process_request(self,request) process_view(self, request, view_func, view_args, view_kwargs)

process_exception(self, request, exception) process_response(self, request, response)

process_request 方法

process_request 方法有一个参数 request,这个 request 和视图函数中的 request 是一样的。

process_request 方法的返回值可以是 None 也可以是 HttpResponse 对象。

  • 返回值是 None 的话,按正常流程继续走,交给下一个中间件处理。
  • 返回值是 HttpResponse 对象,Django 将不执行后续视图函数之前执行的方法以及视图函数,直接以该中间件为起点,倒序执行中间件,且执行的是视图函数之后执行的方法。

process_request 方法是在视图函数之前执行的。

当配置多个中间件时,会按照 MIDDLEWARE中 的注册顺序,也就是列表的索引值,顺序执行。

不同中间件之间传递的 request 参数都是同一个请求对象。

process_view

process_view 方法格式如下:


process_view(request, view_func, view_args, view_kwargs)

process_view 方法有四个参数:


request 是 HttpRequest 对象。

  • view_func 是 Django 即将使用的视图函数。
  • view_args 是将传递给视图的位置参数的列表。
  • view_kwargs 是将传递给视图的关键字参数的字典。

process_response

process_response 方法有两个参数,一个是 request,一个是 response,request 是请求对象,response 是视图函数返回的 HttpResponse 对象,该方法必须要有返回值,且必须是response。

  • process_response 方法是在视图函数之后执行的。
    当配置多个中间件时,会按照 MIDDLEWARE 中的注册顺序,也就是列表的索引值,倒序执行。

process_exception

process_exception 方法如下:

process_exception(request, exception)

参数说明:

  • request 是 HttpRequest 对象。
  • exception 是视图函数异常产生的 Exception 对象。

实例

class MD1(MiddlewareMixin): def process_request(self, request): print("md1 process_request 方法。", id(request)) #在视图之前执行


def process_response(self,request, response): :#基于请求响应 print("md1 process_response 方法!", id(request)) #在视图之后 return response

def process_view(self,request, view_func, view_args, view_kwargs): print("md1 process_view 方法!") #在视图之前执行 顺序执行 #return view_func(request)

def process_exception(self, request, exception):#引发错误 才会触发这个方法 print("md1 process_exception 方法!") # return HttpResponse(exception) #返回错误信息

Django表单组件

Form.cleaned_data

类中的每个字段[Form]不仅负责验证数据,还负责“清理”数据——将其规范化为一致的格式。因为它允许以多种方式输入特定字段的数据,始终产生一致的输出。

as_p()

Form.as_p()

as_p()使用分配给 forms template_name_p属性的模板呈现表单,默认情况下,此模板为 'django/forms/p.html'. 此模板将表单呈现为一系列 <p>标签

as_ul()

Form.as_ul()

as_ul()使用分配给 forms template_name_ul属性的模板呈现表单,默认情况下,此模板为 'django/forms/ul.html'. 此模板将表单呈现为一系列 <li>标签,每个标签<li>包含一个字段。它不包括or <ul></ul>因此您可以在 上指定任何 HTML 属性以 <ul>实现灵活性

as_table()

Form.as_table()

as_table()使用分配给 formstemplate_name_table属性的模板呈现表单,默认情况下,此模板为'django/forms/table.html'. 此模板将表单输出为 HTML<table>`

Django Form 组件

Django Form 组件用于对页面进行初始化,生成 HTML 标签,此外还可以对用户提交对数据进行校验(显示错误信息)。

前端校验+后端校验

前端校验是为了减少后端服务器压力

后端校验为了保存到数据库里的数据是合法的

字段属性:

  • label:输入框前面的文本信息。
  • error_message:自定义显示的错误信息,属性值是字典, 其中 required 为设置不能为空时显示的错误信息的 key。
相关文章
|
15天前
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
26天前
|
中间件 Python
理解Django中间件及其应用实例
理解Django中间件及其应用实例
29 0
|
3月前
|
JSON 前端开发 API
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
Django 后端架构开发:通用表单视图、组件对接、验证机制和组件开发
62 2
|
3月前
|
监控 安全 中间件
Python Django 后端架构开发: 中间件架构设计
Python Django 后端架构开发: 中间件架构设计
38 1
|
3月前
|
安全 中间件 项目管理
Django 后端架构开发:分页器到中间件开发
Django 后端架构开发:分页器到中间件开发
41 1
|
3月前
|
数据采集 Python
Django 表单
【8月更文挑战第24天】
31 3
|
3月前
|
安全 中间件 开发者
Django中间件
【8月更文挑战第21天】
23 5
|
3月前
|
Python
Django表单组件
【8月更文挑战第20天】
32 1
|
3月前
|
前端开发 JavaScript 数据处理
Django的表单处理
【8月更文挑战第16天】
21 2
|
3月前
|
中间件 数据库连接 UED
Django中间件秘籍:如何用几行代码让你的应用变得超级强大?
【8月更文挑战第31天】中间件是Django框架的核心特性,位于视图与HTTP服务器之间,允许全局处理请求和响应,增强Web应用功能。通过实现`MiddlewareMixin`类的方法,如`process_request`和`process_response`,可以轻松实现请求预处理或响应后处理。中间件应用场景广泛,包括用户认证、CSRF防护和数据库连接管理等。创建并配置中间件需将其加入`settings.py`的`MIDDLEWARE`列表,顺序决定执行优先级。合理利用中间件能提高代码重用性和应用性能,带来更好的用户体验。
51 0