涉及session的使用,django的session存储在数据库中,我们需要先配置数据库

此处使用sqlite3,便于快速开始
修改settings.py
‘ENGINE’ : ‘django.db.backends.sqlite3′
‘NAME’ : ‘./data.db’
 
初始化数据库
使用./manage.py syncdb
按提示输入用户名,密码,此处为root/123456
 
使用session实现登陆状态保持(http无状态特性,session等提供了扩展)
 
修改urls.py,创建登录和注销的url
url(r’^form/login/$’,'djangotest1.form.login’),    
url(r’^form/logout/$’,'djangotest1.form.logout’),
在前面配置的form页面基础上添加
from django.http import HttpResponse,HttpResponseRedirect
from django.shortcuts import render_to_response
 
def login(request):
    uname = request.POST.get(‘uname’,None)
    passwd = request.POST.get(‘passwd’,None)
    if uname:
        request.session['uname'] = uname
    sessname = request.session.get(‘uname’,None)
    if sessname:
        return render_to_response(‘login.html’,{‘uname’:sessname})
    else:
    return render_to_response(‘login.html’)
 
 
def logout(request):
    try:
        del request.session['uname']
    except KeyError:
        pass

    return HttpResponseRedirect(‘/form/login’)

 
在templates文件夹下添加文件login.html
{% if not uname %}
<form method = “post” action=”/login/”>
用户名 :<input type=”text” name=”uname” value=”" /><Br/>
密 码 : <input type=”text” name=”passwd” value=”"/><Br/>
<input type=”submit” value=”登录” />
</form>
{% else %}
你好,{{ uname }} <br/>
<form metch=”post” action=”/form/logout/” >
<input type=”submit” value=”注销” />
</form>

{% endif %}

 
现在在http://127.0.0.1:8080/from/login/页面可测试登录,注销
 
 
标签: ,
本文连接地址: http://www.fresker.com/old2/archives/524 (转载注明出处)

回复

目前暂无评论

Sorry, 评论已关闭.