慕课网-Django入门到进阶-更适合Python小白的系统课程-第9章dashboard后端的搭建与开发-9-4dashboard搭建与管理员模块开发(4)

第9章 dashboard 后端的搭建与开发

9-4 dashboard 搭建与管理员模块开发(4)

1.在项目 vedio 下目录 templates/dashboard,修改文件 index.html,添加 css

<%inherit file="base.html" />
<%def name="content()">
    <h1>欢迎来到 muke Django2 实战课程练习的 dashboard</h1>
</%def>
<%def name="title()">首页</%def>
<%def name="css()"%>
<style>
    h1 {
        margin: 5%;
    }
</style>
</%def>

2.在项目 vedio 下目录 app/dashboard/views,添加文件 auth.py

# coding:utf-8

from django.views.generic import View
from app.libs.base_render import render_to_response

class Login(View):
    TEMPLATE = 'dashboard/login.html'

    def get(self, request):
        return render_to_response(request, self.TEMPLATE)

    def post(self, request):
        pass  

3.在项目 vedio 下目录 app/dashboard,修改文件 urls.py

# coding:utf-8

from django.urls import path
from .views.base import Index
from .views.auth import Login

urlpatterns = [
    path('', Index.as_view()),
    path('login/', Login.as_view(), name='dashboard_login'),
]

4.在项目 vedio 下目录 templates/dashboard/auth,添加文件 login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <link rel="stylesheet" href="/static/dashboard/css/bootstrap.min.css" />
    <link rel="stylesheet" href="/static/dashboard/css/login.css" />
</head>
<body>
<form class="form-horizontal edit-area" action="/dashboard/login" method="post">
    ${csrf_token}
    <div class="form-group">
        <div class="col-sm-10">
            <input type="text" name="username" class="form-control" placeholder="用户名">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-10">
            <input type="password" name="password" class="form-control" placeholder="密码">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-default">登录</button>
        </div>
    </div>
</form>
</body>
</html>

5.在项目 vedio 下目录 static/dashboard/css,添加文件 login.css

.edit-area {
    width: 50%;
    margin: 10% auto;
    border: 1px solid #cccccc;
    padding: 5%;
}

6.在项目 vedio 下目录 app/dashboard/views,修改文件 auth.py

# coding:utf-8

from django.views.generic import View
from django.shortcuts import redirect
from app.libs.base_render import render_to_response

class Login(View):
    TEMPLATE = 'dashboard/auth/login.html'

    def get(self, request):
        return render_to_response(request, self.TEMPLATE)

    def post(self, request):
        username = request.POST.get('username')
        password = request.POST.get('password')
        print(username, password)
        return redirect('/dashboard/login')

7.在项目 video 下目录命令行窗口执行生成数据库表

python manage.py makemigrations
python manage.py migrate

8.在项目 video 下目录命令行窗口执行生成超级用户

python manage.py createsuperuser

9.在项目 vedio 下目录 app/dashboard/views,修改文件 auth.py 

# coding:utf-8

from django.views.generic import View
from django.shortcuts import redirect
from django.contrib.auth import login, authenticate
from django.contrib.auth.models import User
from app.libs.base_render import render_to_response

class Login(View):
    TEMPLATE = 'dashboard/auth/login.html'

    def get(self, request):
        return render_to_response(request, self.TEMPLATE)

    def post(self, request):
        username = request.POST.get('username')
        password = request.POST.get('password')
        print(username, password)
        exists = User.objects.filter(username=username).exists()
        data = {'error':'不存在该用户'}
        if not exists:
            return render_to_response(request, self.TEMPLATE, data)
        user = authenticate(username=username, password=password)

 

 

posted on 2020-02-21 09:39  herisson_pan  阅读(9)  评论(0)    收藏  举报

导航