Python django身份验证登录不工作
我使用的是Django 1.11.4,无法理解为什么这段代码不起作用 在登录之前和之后,我试图Python django身份验证登录不工作,python,django,Python,Django,我使用的是Django 1.11.4,无法理解为什么这段代码不起作用 在登录之前和之后,我试图请求.user.is\u authenticated(),但在这两种情况下,我都得到False 如果我从管理员处登录,则同一用户登录 user = authenticate(username='myuser',password='mypassword') if user is not None: if user.is_active: print("before",request.
请求.user.is\u authenticated()
,但在这两种情况下,我都得到False
如果我从管理员处登录,则同一用户登录
user = authenticate(username='myuser',password='mypassword')
if user is not None:
if user.is_active:
print("before",request.user.is_authenticated())
login(request,user)
print("after",request.user.is_authenticated())
return HttpResponse("login success")
else:
return HttpResponse("account is disabled")
else:
return HttpResponse("invalid login")
我认为这是因为您设置了一个新变量(user) 但如果再次引用request.user,则在内部
print(request.user.is_authenticated())
删除请求。。。所以
print(user.is_authenticated())
我认为这是因为您设置了一个新变量(user) 但如果再次引用request.user,则在内部
print(request.user.is_authenticated())
删除请求。。。所以
print(user.is_authenticated())
当然,您可以实现自己的登录机制,但是,为什么不在更容易理解和添加的情况下特别使用内置机制呢 首先导入django.contrib.auth.views模块,并为登录和注销视图添加URL路由:
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^login/$', auth_views.login, name='login'),
url(r'^logout/$', auth_views.logout, name='logout'),
url(r'^admin/', admin.site.urls),
]
默认情况下,django.contrib.auth.views.login
视图将尝试呈现registration/login.html
模板。因此,基本配置是创建一个名为registration
的文件夹,并在其中放置一个login.html
模板,如下所示:
% extends 'base.html' %}
{% block title %}Login{% endblock %}
{% block content %}
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
{% endblock %}
%extends'base.html%}
{%block title%}登录名{%endblock%}
{%block content%}
登录
{%csrf_令牌%}
{{form.as_p}}
登录
{%endblock%}
这个简单的示例已经验证了用户名和密码,并正确地验证了用户。然后您可以使用decorator。当然您可以实现自己的登录机制,但是,为什么不在更容易理解和添加的情况下特别使用内置机制呢 首先导入django.contrib.auth.views模块,并为登录和注销视图添加URL路由:
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^login/$', auth_views.login, name='login'),
url(r'^logout/$', auth_views.logout, name='logout'),
url(r'^admin/', admin.site.urls),
]
默认情况下,django.contrib.auth.views.login
视图将尝试呈现registration/login.html
模板。因此,基本配置是创建一个名为registration
的文件夹,并在其中放置一个login.html
模板,如下所示:
% extends 'base.html' %}
{% block title %}Login{% endblock %}
{% block content %}
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
{% endblock %}
%extends'base.html%}
{%block title%}登录名{%endblock%}
{%block content%}
登录
{%csrf_令牌%}
{{form.as_p}}
登录
{%endblock%}
这个简单的示例已经验证了用户名和密码,并正确地验证了用户。然后您可以使用decorator。您是如何在视图中导入
登录名的?您是如何在视图中导入登录名的?