美文网首页
django05会话技术

django05会话技术

作者: fly5 | 来源:发表于2018-09-29 16:53 被阅读0次

一、HttpRequest对象

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

  • 属性

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

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

    # 参数获取
    name -request.POST.post('name')
    

二、HttpResponse对象

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

  • HttpResponse()

    response = HttpResponse('hello')
    response = HttpResponse('hello',status=200)
    
  • 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

# 注册
```
1、urls
url(r'^register/$',views.register,name=register)

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

```
register.html # 注册页面
<form action="{% 'meituan:register %}" method=“post”>
    {% csrf_token %}
    # 注册的东西
    <p>
        <input type='text' name='user' placeholder='用户名'>
    </p>
</form>
```


# 登录
```
1、urls
    url(r'^login/$',views.login,name=login)

2、views
    def login(request):
        if request.method=='POST':# 登录操作
            
            uesrname = request.POST.get('username')
            password = request.POST.get('password')
            # 根据用户名和密码 去数据库中找
            # 能找到,登录成功
            # 找不到,登录失败
            
            users = User.objects.filter(u_name=username,u_password=password)
            if user.exists(): # 存在
                user = users.first()
                
                # 登录成功,直接重定向 首页
                response = redirect('/meituan/')
                
                #设置cookie
                response.set_cookie('username',user.u_name)
            
                
                return HttpResponse('{}登录成功'.format(username))
            else: # 不存在
                return HttpResponse('登录失败')
            
        elif request.method == 'GET':# 获取登录页面
            return render(request,'login.html')
        return
```

```
login.html # 注册页面
<form action="{% 'meituan:login %}" method=“post”>
    {% csrf_token %}
    # 登录的东西
    <p>
        <input type='text' name='user' placeholder='用户名'>
    </p>
    ...
</form>
```


# 退出登录
```
1、url
    url(r'logout/$',views.logout,name='logout')
    
2、views
    def logout(request):
        # 删除cookie
        response = redirect('/meituan/')
        response.delete_cookie('username')
        
        return response
```


# 关于
```
1、url
    url(r'about/$',views.about,name='about')
    
2、views
    def about(request):
        # 获取cookie
        username = request.COOKIES.get('username')
        
        return render(request,'about.html',context={'username':username})

```

相关文章

  • django05会话技术

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

  • 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 ...

网友评论

      本文标题:django05会话技术

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