添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

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

Django Form 组件

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

前端校验+后端校验

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

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

字段属性: