比如在我的index(request)中:
def index(request):
if logged_in:
return HttpResponseRedirect("/home_profile")
else:
return HttpResponseRedirect("/login")
这样,当用户点击我的主页时...他会被适本地重定向。这是一个好的架构吗?或者这会导致缓存问题等吗?
最佳答案
重定向没问题(302 不应该导致任何缓存问题,因为 302 是临时的),但为什么您需要在 if 和 else 中都进行重定向。更好的方法是在未登录时重定向到登录页面,否则 View 应返回响应,而不是不必要地重定向,例如
def home(request):
if not logged_in:
return HttpResponseRedirect("/login?next=%s"%reverse("home"))
return HttpResponse(...)
你可以在用户需要登录的每个 View 中做同样的事情,否则做一个登录装饰器,djago auth 已经有 l ogin_required或者制作一个登录中间件,它将为每个请求执行此操作。
另请注意,我在登录后传递下一个要访问的 url,因为通常我想到达我要去的地方。
关于python - 在我的 Web 应用程序中为架构做 302 是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2347074/