django authentication

django authentication
django session expiry

login and logout view.py

from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render
def user_login(request):
    if request.method == "POST":
        # try:
        #     m = models.UserProfile.objects.get(email=request.POST['username'])
        # except Exception:
        #     print("username doesn't exist")
        #     return render(request, "login.html")
        username = request.POST["username"]
        password = request.POST["password"]
        print(username, password)
        user = authenticate(request, email=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                # request.session.set_expiry(1800)
                return render(request, "index1.html")
            else:
                return render(request, "login.html")
        else:
            return render(request, "login.html")


def user_logout(request):
    logout(request)
    return render(request, "login.html")
    # try:
    #     del request.session['member_id']
    # except KeyError:
    #     pass

login index.html

<form method="post" class="m-t" role="form" action="{% url 'login' %}">
    {% csrf_token %}
    <div class="form-group">
        <input placeholder="Username" name="username">
    </div>
    <div class="form-group">
        <input placeholder="Password" name="password">
    </div>
    <input type="submit" value="login" >
    <input type="hidden" name="next" value="{{ next }}" />
    <p><a href="{% url 'password_reset' %}">Lost password?</a></p>
</form>

logout.html

<a href="{% url 'logout' %}">
    <i class="fa fa-sign-out">注销</i> 
</a>

urls.py

urlpatterns = [
    url(r'^login/', views.user_login, name="login"),
    url(r'^logout/', views.user_logout, name="logout"),
]
原文地址:https://www.cnblogs.com/vickey-wu/p/8784588.html