13-会话技术及表单(cookies和session)

13-会话技术及表单(cookies和session)

01-什么是Cookies

02-Cookie常用参数

03-使用session

04-django表单介绍,及简单表单的操作

 

01-什么是Cookies

cookies设置的原因: 1. http请求的无记忆性; 2.加快访问速度  3. 减少服务器压力

cookies特点:

cookies保存在客户端浏览器上的键值对,且每次访问页面都会带着cookies

cookies可以主动清除

cookies也可以被"伪造",可以被别人带着cookies操作你的账号

cookies会根据域名进行分类,不能跨域共享,也就是说百度有百度的,JD有京东的

cookies必须请求数据成功后才能有用哈

浏览器可以设置不接收Cookies

服务器端设置的cookies

cookies可以设置超时时间, max_age=10

02-Cookie常用参数

·key:键

·value:值

·max_age:多久后过期,时间为秒

·expires:过期时间,为具体时间

·path:生效路径

·domain:生效的域名

·secure:HTTPS传输时应设置为true

·httponly:值应用于http传输,JavaScript无法获取

实例

1 def index(request):
2     times = request.COOKIES.get('times')
3     if times:   # 如果存在就加次数1
4         times = str(int(times)+1)
5     else:   # 如果不存在就定义这1
6         times ='1'
7     responst = render(request,'teacher/index.html',context={'times':times})
8     responst.set_cookie('times', times, max_age=10)   # 把参数加入到COOKIE
9     return responst

 

使用session:

启用会话后,每个HttpRequest对象将具有一个session属性,它是一个类字典对象

- get(key, default=None):根据键获取会话的值

- clear():清除所有会话

- flush():删除当前的会话数据并删除会话的Cookie

- del request.session['member_id']-:删除

 1 def login(request):
 2     if request.method == 'POST':
 3         username = request.POST.get('username')
 4         passwork = request.POST.get('password')
 5         if username == 'guang' and passwork == '123':
 6             request.session['name'] = username
 7             request.session.set_expiry(600)
 8             return redirect('/teacher/index/')
 9     else:
10      return render(request,'teacher/login.html')
# session的使用
def index(request):
    name = request.session.get('name') #  检查是否已登录
    if not name:
        return redirect('/teacher/login/')   #反回登录页面
    #已经登录就执行程序
# 用户退出登录 

def logout(request):    # 用户退出模型
    request.session.flush()   # 删除session信息
    return redirect('teacher/login.html')  # 返回登录页面

 

04-django表单介绍,及简单表单的操作

用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解。

Form表单的功能

  • 自动生成HTML表单元素
  • 检查表单数据的合法性
  • 如果验证错误,重新显示表单(数据不会重置)
  • 数据类型转换(字符类型的数据转换成相应的Python类型)

Form相关的对象包括

  • Widget:用来渲染成HTML元素的工具,如:forms.Textarea对应HTML中的<textarea>标签
  • Field:Form对象中的一个字段,如:EmailField表示email字段,如果这个字段不是有效的email格式,就会产生错误。
  • Form:一系列Field对象的集合,负责验证和显示HTML元素
  • Form Media:用来渲染表单的CSS和JavaScript资源。

Form Objects

Form对象封装了一系列Field和验证规则,Form类都必须直接或间接继承自django.forms.Form,

 

django模型字段和表单字段对应

例子:

forms:

 

views:

 

html:

 

posted @ 2019-05-10 10:06  放弃吧!孩纸  阅读(215)  评论(0编辑  收藏  举报