gpt4 book ai didi

python - Django 用户传递

转载 作者:行者123 更新时间:2023-12-01 04:47:38 24 4
gpt4 key购买 nike

我是 python 和 django 的新手,我必须构建一个网络应用程序。假设用户登录后,他会被重定向到另一个页面,在那里他选择要处理的项目。问题是,当他选择一个项目成功登录后,我从登录 View 中收到“无效的登录凭据”错误。我以为我们已经过去了...这是 View 文件:


def login(request):
context=RequestContext(request)
if request.method=='POST':
username=request.POST.get('username')
password=request.POST.get('password')
user=auth.authenticate(username=username, password=password)
if user:
if user.is_active:
auth.login(request,user)
return render_to_response('ProjectLogging/main.html',{'user':user, 'project_list':Project.objects.all()}, context)
else:
return HttpResponse("Your account is disabled.")
else:
return HttpResponse("Invalid login credentials.")
return render_to_response('ProjectLogging/login.html',context)

@login_required
def logout(request, user):
context=RequestContext(request)
auth.logout(request, user)
return render_to_response('ProjectLogging/login.html',{'user':None},context)

@login_required
def main(request, user):
context = RequestContext(request)
user=user
if request.method=='POST':
project=request.POST['project']
if project:
change=Change(user=user, project=project,starttime=datetime.datetime.now())
change.save()
else:
HttpResponse("Choose a valid project!")
else:
HttpResponse("Choose a POST method (???????)")

这是该项目的网址:

urlpatterns=patterns('',
url(r'', 'views.login'),
url(r'^login/$', 'views.login'),
url(r'^logout/$', 'views.logout'),
url(r'^main/$','views.main'),

)

另外,我还没有掌握 View 、url 和 html 文件在 django 中如何协作,所以如果您能推荐一个学习网站,我将不胜感激。最后,注销不起作用,因此如果您对此有任何了解,我将更加感激。谢谢。

最佳答案

URL 模式使用正则表达式并返回第一个匹配项。在正则表达式中,^ 表示字符串的开头,$ 表示字符串的结尾。如果两者都不存在,则可以在字符串中的任何位置找到该模式,并且它仍然匹配。现在看看您的第一个模式。

    url(r'', 'views.login'),

此模式可以匹配字符串中的任何位置,并且如果字符串“包含”空字符串(即您能想到的每个单个字符串),则它会匹配。所有请求都将定向到您的 views.login View 。

要修复此问题,您必须使用模式 r'^$'。这将匹配 url 路径的开头和结尾,中间没有任何内容,即仅 www.example.com/ (第一个斜杠始终被切掉)。然后您可以通过 /logout//main/ 访问其他 View 。

关于python - Django 用户传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com