Django

HTTP无状态协议,是指协议对于交互性场景没有记忆能力,每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录。

创建用户对象的三种方法:

  • create():创建一个普通用户,密码是明文的。

  • create_user():创建一个普通用户,密码是密文的。

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

参数:

  • username: 用户名。

  • password:密码。

  • email:邮箱 (create_superuser 方法要多加一个 email)。

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 选项列表中。

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

自定义中间件

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

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。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

北海屿鹿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值