Views.pyDjango的:如何在HtpResponseRedirect发送参数
from django.shortcuts import render
from django.template.context_processors import csrf
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from .models import studentDetails
from .forms import loginForm
# Create your views here.
def login(request):
c = {}
c.update(csrf(request))
return render(request, "login.html", c)
def auth_view(request):
username = request.POST.get("username", "")
password = request.POST.get("password", "")
q = studentDetails.objects.get(name=username)
if q.password==password:
return HttpResponseRedirect("/student/accounts/loggedin")
return HttpResponseRedirect("/studemt/accounts/invalid")
def loggedin(request):
username = request.GET.get("username")
return render(request, "loggedin.html", {"full_name": username})
def invalid(request):
return render(request, "invalid_login.html")
def logout(request):
return render(request, "logout.html")
Urls.py
from django.conf.urls import url
from django.contrib import admin
from .views import (
login,
auth_view,
loggedin,
logout
)
urlpatterns = [
url(r"^accounts/login/$", login , name="login"),
url(r"^accounts/auth/$", auth_view ,name="auth_view"),
url(r"^accounts/loggedin/$", loggedin , name="loggedin"),
url(r"^accounts/logout/$", logout, name="logout"),
]
我想从auth_view发送用户名的loggedIn的看法,但我don'y知道如何做到这一点。 我已经使用username = request.GET.get("username")
,但它不工作。 我想要在url中显示用户名,使其看起来像/student/username/
其中用户名将更改为不同的用户登录。
**“其中用户名将会改变为不同的用户登录” **我想,我的回答将帮助你http://stackoverflow.com/questions/38781442/how-to-rewrite-base-url- in-django-add-logged-in-username-in-the-url-of-all-pa/38895767#38895767 –
在我的问题中,auth_view没有渲染任何页面,它只是检查数据,它想发送用户名从auth_view到登录视图。 –
您通常会将其存储在[会话](https://docs.djangoproject.com/en/1.10/topics/http/sessions/)中。或者使用[djangos auth系统](https://docs.djangoproject.com/en/1.10/topics/auth/default/),而不是滚动自己的。 – mata