1. 程式人生 > 實用技巧 >18-crm專案-kingadmin,完成crm使用者認證登陸

18-crm專案-kingadmin,完成crm使用者認證登陸

完成crm使用者認證登陸

{% extends 'base.html' %}

{% block body %}
    <div class="container col-lg-offset-4 ">
      <form class="form-signin col-lg-3 pu " method="post"  role="form">{% csrf_token %}
        <h3 class="form-signin-heading">Oldboy PerfectCRM</h3>
        <input type="
email" name="email" class="form-control" placeholder="Email address" required autofocus> <input type="password" name="password" class="form-control" placeholder="Password" required> {% if errors %} <span style="color: red;">{{ errors.error }}</span> {
% endif %} <div class="checkbox"> <label> <input type="checkbox" value="remember-me"> Remember me </label> </div> <button class="btn btn-lg btn-primary btn-block" type="submit">Login</button> </form> </div> <!-- /container --> {
% endblock %}

增加url路由

from django.conf.urls import url,include
from django.contrib import admin
# admin.autodiscover()
from PerfectCRM import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^crm/', include("crm.urls")),
    url(r'^$', views.index),
    url(r'^account/login/$', views.acc_login),
    url(r'^account/logout/$', views.acc_logout,name="acc_logout"),
    url(r'^student/', include("student.urls")),
    url(r'^king_admin/', include("king_admin.urls")),
]

增加檢視:

def acc_login(request):

    errors = {}
    if request.method == "POST":
        _email = request.POST.get("email")
        _password = request.POST.get("password")

        user = authenticate(username = _email, password = _password)
        if user:
            login(request,user)
            next_url = request.GET.get("next","/")
            return redirect(next_url)
        else:
            errors['error'] = "Wrong username or password!"


    return render(request,"login.html",{"errors":errors})

對每一個檢視進行登陸校驗,使用了django自帶的認證系統,

from django.contrib.auth.decorators import login_required

還需要一個登出

def acc_logout(request):

    logout(request)

    return redirect("/account/login/")