码迷,mamicode.com
首页 > Web开发 > 详细

html session

时间:2016-03-08 13:21:35      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:

由于html cookie是存储在客户端的,且为明文,故不安全,另外一个支持html间数据传输的为session

 

修改blog/views.py

[root@host-100-100-5-17 alu02]# cat blog/views.py
from django import forms
from django.http import HttpResponse
from django.shortcuts import render_to_response
from models import User
from django.http.response import HttpResponseRedirect

class UserForm(forms.Form):
    username = forms.CharField()
    password = forms.CharField(widget = forms.PasswordInput)
    
def register(req):
    if req.method == POST:
        form = UserForm(req.POST)
        if form.is_valid():
            username = form.cleaned_data[username]
            password = form.cleaned_data[password]
            User.objects.create(username=username, password=password)
            return HttpResponseRedirect(login)
    else:
        form = UserForm()
    
    return render_to_response(register.html, {form:form})

def login(req):
    if req.method == POST:
        form = UserForm(req.POST)
        if form.is_valid():
            username = form.cleaned_data[username]
            password = form.cleaned_data[password]
            users = User.objects.filter(username=username, password=password)
            if users:
                req.session[username] = username
                return HttpResponseRedirect(index)
            else:
                return HttpResponseRedirect(login)
    else:
        form = UserForm()
    
    return render_to_response(login.html, {form:form})

def index(req):
    username = req.session.get(username,anybody)
    return render_to_response(index.html, {username: username})

def logout(req):
    del req.session[username]
    return HttpResponse(you are logout)
[root@host-100-100-5-17 alu02]# 

 

测试页面

技术分享

 

技术分享

 

查看session id

技术分享

 

查看数据库中的session key,可见和firefox中的session id一致

mysql> select * from django_session;
+----------------------------------+--------------------------------------------------------------------------------------+----------------------------+
| session_key                      | session_data                                                                         | expire_date                |
+----------------------------------+--------------------------------------------------------------------------------------+----------------------------+
| q17c9eiikrmpz2vl6im1ye6wxiawoy6k | ZjEwMDIyOWYxMWQyNDM3ODlhMmYxMTQwYjMwZDEzNmI5OWIzMjAxYTp7InVzZXJuYW1lIjoiYWx1MDIifQ== | 2016-03-22 11:51:57.352419 |
+----------------------------------+--------------------------------------------------------------------------------------+----------------------------+
1 row in set (0.00 sec)

mysql> 

 

logout会在数据库中改变session data,也就是更新为不可使用值,但是session id在firefox和数据库中均不会被删除

技术分享

技术分享

 

mysql> select * from django_session;
+----------------------------------+--------------------------------------------------------------+----------------------------+
| session_key                      | session_data                                                 | expire_date                |
+----------------------------------+--------------------------------------------------------------+----------------------------+
| q17c9eiikrmpz2vl6im1ye6wxiawoy6k | ZTFhOGIxMTdjNzE2NTMzMzc2NGI2MmMxMmIzN2Y0MjI0MDE3NGY4Nzp7fQ== | 2016-03-22 11:54:34.994341 |
+----------------------------------+--------------------------------------------------------------+----------------------------+
1 row in set (0.01 sec)

mysql> 

 

html session

标签:

原文地址:http://www.cnblogs.com/onmyway227/p/5253518.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!