django05会话技术

2018-09-29  本文已影响0人  fly5

一、HttpRequest对象

二、HttpResponse对象

三、会话技术

四、会话技术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})

```
上一篇 下一篇

猜你喜欢

热点阅读