【问题标题】:Django Session doesn't work enoughDjango Session 不够用
【发布时间】:2012-07-20 10:20:50
【问题描述】:

当我在 django 1.4 中打开会话时,一切都很好。如果我使用某些表单流程重定向我的页面,我可以阅读我的会话

例子:

<form id="processForm" action="http://localhost:8000" method="post">{% csrf_token %} 
   <input type="submit" value="Search"></input>
</form> 

我在 localhost:8000 和 memcached 工作。问题是当我打开会话后,如果我在浏览器上搜索 localhost:8000,我无法读取会话,就像它永远不会退出一样。

代码:

views.py

def search(request):     
    c = {}
    c.update(csrf(request))
    if request.session.get('name'):
        c.update({ 'hellomsg' : 'Hello:' + request.session["name"] })
    else:
        c.update({ 'hellomsg' : 'Hello: Guest' })        
    if request.method == 'POST':
        if request.POST['q']:
            if not request.POST['q'] == "false":                
                c.update({ 'output' : request.POST['q'] })
    return render_to_response("form.html", c, context_instance= RequestContext(request))

def open_session(request):
    c = {}    
    c.update(csrf(request))
    if not request.session.get('name'):
        if request.POST['nametxt']:
            request.session['name'] = request.POST['nametxt']
            c.update({ 'hellomsg' : 'Hello:' + request.POST['nametxt'] })
        else:
            c.update({ 'hellomsg' : 'Error...'})
    else:
        c.update({ 'hellomsg' : 'You're already logged in...'})
    return render_to_response("form.html", c, context_instance= RequestContext(request))

def close_session(request):
    c = {}
    c.update(csrf(request))
    if request.session.get('name'):
        try:
            del request.session['name']
            c.update({ 'hellomsg' : 'logged out...'})
        except KeyError:
            pass
    else:
        c.update({ 'hellomsg' : 'Error'})        
    return render_to_response("form.html", c, context_instance= RequestContext(request))  

urls.py

urlpatterns = patterns('',
    ('^$', search),
    ('^session/$', open_session),
    ('^csession/$', close_session),
)   

【问题讨论】:

  • 你真的应该格式化你的代码,因为那里一团糟!

标签: django session localhost


【解决方案1】:

会话是在 Django 中自动创建的。请参阅this 页面。

要读取或写入会话,您可以执行request.session['someting']

【讨论】:

    猜你喜欢
    • 2017-08-17
    • 2016-06-15
    • 2021-12-20
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 2016-03-19
    • 2015-12-18
    • 2018-09-10
    相关资源
    最近更新 更多