美文网首页
06-会话技术

06-会话技术

作者: 学飞的小鸡 | 来源:发表于2018-10-20 15:10 被阅读0次

一、HttpRequest 对象

  • 概述
    服务器接收到客户端请求后,系统自动创建的对象(视图函数第一个参数)。

  • 属性

    path 请求路径
    method 请求方法
    GET get请求参数
    POST post请求参数
    FILES 上传文件
    COOKIES cookie对象【会话技术】
    SESSION session对象 【会话技术】
    
    
  • GET请求

    # 参数获取
    name = request.GET.get('name')
    
    
  • POST请求

    # 参数获取
    name = request.POST.get('name')
    

二、HttpResponse对象

  • 概述
    用于返回数据给客户端的。

  • HttpResponse()

    
    response = HttpResponse(’hello')
    
  • render()

    
    response = render(request,'index.html')
    response = render(request, 'index,html', status = 301)
    
  • redirect()

    
    response = redirect('/meituan/')
    
  • JsonResponse()
    
    stu = {'name': 'zhangsan', 'age':20}
    response = JsonResponse(stu)
    

三、会话技术

  • 概述

    
    HTTP 无状态 【请求一次,返回对应的响应,称为一次会话】
    
    会话技术:实现状态保持
    
    为什么要使用会话保持?
        在一定的时间段或操作中,跟踪请求者状态!【服务器就知道你谁】
    

    类比:github HTTP,每次操作都需要输入用户名和密码【服务器才知道你是谁】

  • 会话技术
    
    cookie: 客户端会话技术
    session: 服务器会话技术(要依托cookie)
    token: 手动session
    

四、会话技术cookie

    ```
# 注册:
def register(request):
    if request.method == 'POST': # 注册操作
        # 获取客户端的数据
        username = request.POST.get('username')
        password = request.POST.get('password')
        tel = request.POST.get('tel')
        
        # 保存到数据库
        user = User()
        user.u_name = username
        user.u_password = password
        user.u_tel = tel
        user.save()
        
        
        # 注册成功,直接重定向
        response = redirect('/meituan/')
        #设置cookie
        response.set_cookie('username',user.u_name)
        
        return response
        # return HttpResponse('{}注册成功'.format(username))
        
    elif request.method == 'GET' : # 获取注册页面
        return render(request, 'register.html')  # 进入注册页面

        
# 登录:
    def login(request):
        if request.method == 'POST': # 登录操作
            username = request.POST.get('username')
            password = request.POST.get('password')
            
            # 根据用户名和密码,去数据库中找
            # 能找到,登录成功
            # 找不到,登录失败
            users = User.objects.filter(u_name = username, u_password = password)
            if users.exists(): # 用户存在
                user = users.fist()
                # 登录成功,直接重定向(到首页)
                response = redirect('/meituan/')
                return response
                
                # return HttpResponse('{}登录成功'.format(user.u_name))
            else:  # 用户不存在
                return HttpResponse('用户名或密码错误!')
            
            
        elif request.method == 'GET': # 获取登录页面
            pass
        return None


# 退出登录:
    def logout(request):
    
        # 删除cookie
        response = redirect('/meituan/')
        response.delete_cookie('username')
        return response
    
    
    
# 关于我们:
    def about(request):
        # 获取cookie
        username = request.COOKIES.get('username')
        
        return render(request, 'about.html', context={'username':username))

# 首页
def index(request):
    # 获取用户名
    username = request.COOKIES.get('username')
    
    return render(request, 'meituan.html', context:{'username':username}

```

相关文章

  • 06-会话技术

    一、HttpRequest 对象 概述服务器接收到客户端请求后,系统自动创建的对象(视图函数第一个参数)。 属性p...

  • Django-cookie&session

    会话跟踪 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cook...

  • web 10.Cookie&Session

    会话:多次请求回应 组成一次会话 为了共享数据Cookie 客户端会话技术Session 服务端会话技术 例如:购...

  • 会话管理(session)

    会话技术分类 cookie技术 会话数据保存在浏览器客户端 session技术 会话数据保存在服务端 coolie...

  • Day_06_Cookie+Session

    会话技术 Cookie Session技术

  • 会话技术

    cookie COOKIE参数说明有效期:默认情况一个会话周期为从新增该条COOKIE到浏览器关闭为止有效路径:默...

  • 会话技术

    Cookie技术:会话数据保存在浏览器客户端 Session技术:会话数据保存在服务端 今天讲Cookie技术: ...

  • 会话技术

    1、 C/S架构和B/S架构随着 智能终端出现,界限越来越模糊 2、 需要重点关注C/S架构里面的自定义协议的会话...

  • Cookie入门

    会话技术 会话技术常用的有两种: Cookie技术,Session技术,这两种技术是有区别的. Cookie技术 ...

  • flask会话技术详解及模板使用

    一、会话技术cookie 概述 设置cookie 获取cookie 删除cookie 二、会话技术session ...

网友评论

      本文标题:06-会话技术

      本文链接:https://www.haomeiwen.com/subject/hwbyaftx.html