Django13
回顾+补充
1.Django请求生命周期
-url -> 视图
-中间件 -> url ->视图..
-web框架本质:socket
-wsgiref+django 现在自己写的是这样
-uwsgi+django 生产中实际
WSGI协议:web服务网关接口
整个生命周期 wsgi+django
客户端 ==》 wsgi ==》django
==》中间件 ==》视图函数 ==》数据库操作 ==》模板渲染 然后再返回
from wsgiref.simple_server import make_server
def RunServer(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ]if __name__ == '__main__': httpd = make_server('', 8000, RunServer) print("Serving HTTP on port 8000...") httpd.serve_forever()今日内容:
1.中间件
2.Form验证
1.中间件
-是个类
process_request
process_response(...response)
必须有返回值
return response
process_view
process_exception
process_template_view
-需要注册中间件
[
]
-应用:对所有请求或一部分请求做批量处理
2.Form验证
-需要对请求数据做验证
-获取到数据然后进行验证
-login : 邮箱zhengze
-register: 邮箱正则
问题:
1-无法记住上次输入的内容,刷新页面数据消失
2-重复进行用户数据校验:正则,长度,是否为空
Django提供,Form组件
1:定义规则
from django.forms import Form
from django.forms import fields
class XXX(Form)
xx = fields.CharField(required=True,max_length=16,min_length=6,error_message={'required':'不能为空'})
field.EmailFiedl()
field.IntegerField()
使用:
根据前端传过来的name属性 与 类中写的名字一一匹配
obj = xxx(request.POST)
#是否校验成功
v = obj.is_valid()
#所有错误信息
obj.errors
#正确信息(字典类型)
obj.cleaned_data
posted on 2018-09-21 11:42 castiel_lee 阅读(80) 评论(0) 收藏 举报
浙公网安备 33010602011771号