zoukankan      html  css  js  c++  java
  • 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:

  • 相关阅读:
    HDU 1813 Escape from Tetris
    BZOJ 2276 Temperature
    BZOJ 4499 线性函数
    BZOJ 3131 淘金
    HDU 5738 Eureka
    POJ 2409 Let it Bead
    POJ 1286 Necklace of Beads
    POJ 1696 Space Ant
    Fox And Jumping
    Recover the String
  • 原文地址:https://www.cnblogs.com/jun-1024/p/10842784.html
Copyright © 2011-2022 走看看