【发布时间】:2011-09-02 08:18:55
【问题描述】:
我是 python 和 django 的新手。我正在尝试使用 django 框架进行安全的用户身份验证。我在 [templates/user] 中创建了一个 login.html 页面。如果登录成功,用户会转到 user/ContactSuccess.html。
ContactSuccess.html :
<html>
---------{{request.user.username }}------------
{% if request.user.is_authenticated %}
<p>Welcome, {{ user.username}}. Thanks for logging in.</p>
{% else %}
<p>Welcome, new user. Please log in.</p>
{% endif %}
<body>success</body>
</html>
views.py
............
def testlogsuccess(request):<br/>
if not request.user.is_authenticated():
return HttpResponseRedirect("/accounts/login/")
else:
user = request.user.is_authenticated()
return render_to_response('user/ContactSuccess.html',locals())
.......
urls.py:
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^accounts/login/$',login),
(r'^accounts/logout/$', logout),
(r'^accounts/profile/$', views.testlogsuccess),
好吧,它工作正常。
输出是:
---------Ji------------
Welcome, . Thanks for logging in.
success .
但我的问题是当我停止我的开发服务器然后重新启动它,然后在没有登录的情况下尝试 url 'http://127.0.0.1:8000/accounts/profile/' 时,它仍然显示上述输出。我怎样才能避免这种情况。
我正在使用 django 1.3、python 2.7.2 和 windows7。
【问题讨论】:
-
你能正确缩进代码吗?关于问题 - 我建议仔细阅读djangobook.com/en/2.0/chapter14。默认情况下,Django 会话保存到数据库,因此重新启动服务器不会注销已登录的 n 个用户...
-
显示正确。正常情况下工作正常
-
实际需要假设我登录成功。如果我将 url 复制粘贴到新标签中,那么它会显示你没有经过身份验证...
-
这意味着我还必须将会话与用户认证一起使用..不是吗?
标签: python django django-1.3