django自定义装饰器:
views.py
def auth(func):
def inner(request,*args,**kwargs):
v = request.COOKIES.get('user') #拿到设置得cookie
if not v:
r = request.path
url = '/login/?next='+r
return redirect(url)
return func(request,*args,**kwargs)
return inner
def log_in(request):
...
r = request.POST.get('next')
if u ==user and p == pwd:
res = HttpResponseRedirect(r)
res.set_cookie('user':u,max_age=100)
return res
@auth
def index(request):
pass
前端templates:
login.html
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<input type="text" name="user" >
<input type="text" name="password"><br>
<input type="text" name="next" value="{{ request.GET.next }}">
<input type="submit" value="提交">
</form>