CSIC_716_20200113【Django入门---forms组件、session和cookie、登录认证装饰器】
forms组件
forms组件的功能:1、渲染前端页面,不用在前端手写forms表单了,不过只会渲染用户输入(输入、选择、下拉、文件)的标签,不渲染按钮以及form表单标签,。2、后端能进行非常规范的数据合法性校验3、展示校验之后的合法性信息。
使用方法:1、定义一个自定义forms类
form组件的前端渲染方式
效果差不多
浏览器中的结果:
校验的一些参数:
正则、等
钩子函数是等字段校验完成后,再自动执行钩子中的校验
cookie与session 由来 本质 具体操作 django中如何操作 cookie的操作 一定要利用HttpResponse类直接或间接产生的对象 设置 obj = HttpResponse('...') obj.set_cookie(k,v) 可以设置超时时间 obj.set_cookie(k,v,max_age/expire) 获取 request.COOKIES.get(k) 删除 obj = HttpResponse('...') obj.delete_cookie(k,v) 基于cookie写校验用户登录装饰器并且能够记住用户上一次想要访问的url session的操作 django操作session默认需要使用内置的一张django_session表 如果没有执行过数据库迁移命令 no such table:django_session django默认的超时时间为14天 设置 request.session['username'] = 'jason' """ 1.产生一个随机字符串 2.取django session存储数据 session_key就是产生的随机字符串 session_data就是要保存的数据 expire_date超时时间 3.将产生的随机字符串返回给浏览器 浏览器本地保存键值对 sesssionid:随机字符串 """ 获取 request.session.get('username') """ 1.自动取请求头中查找cookie锁携带的键值对 获取到随机字符串 2.拿着随机字符串取django_session表中比对数据 3.有的话就将对应的数据取出放到request.session中 """ 删除 request.session.flush() # 推荐 request.session.delete() 额外了解 设置超时时间 request.session.set_expire(value) 1.数字 秒数 2.时间数据类型 3.0 4.不放 默认采用全局失效策略 session不一定非要存到数据库 文件 缓存数据库 数据
顶