②. 后台管理员的登录与退出

(1). 配置路由(已配置过可省略)

  • 配置路由 myobject/myadmin/urls.py 加入如下代码
 ....

    # 后台管理员路由
    url(r'^login$', index.login, name="myadmin_login"),
    url(r'^dologin$', index.dologin, name="myadmin_dologin"),
    url(r'^logout$', index.logout, name="myadmin_logout"),
 ....

(2). 编写视图文件

  • 编写视图 myobject/myadmin/views/index.py文件 并加入如下代码:
from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import redirect
from django.core.urlresolvers import reverse

from common.models import Users
import time,json

...

# ==============后台管理员操作====================
# 会员登录表单
def login(request):
    return render(request,'myadmin/login.html')

# 会员执行登录
def dologin(request):
    try:
        #根据账号获取登录者信息
        user = Users.objects.get(username=request.POST['username'])
        #判断当前用户是否是后台管理员用户
        if user.state == 0:
            # 验证密码
            import hashlib
            m = hashlib.md5() 
            m.update(bytes(request.POST['password'],encoding="utf8"))
            if user.password == m.hexdigest():
                # 此处登录成功,将当前登录信息放入到session中,并跳转页面
                request.session['adminuser'] = user.name
                #print(json.dumps(user))
                return redirect(reverse('myadmin_index'))
            else:
                context = {'info':'登录密码错误!'}
        else:
            context = {'info':'此用户非后台管理用户!'}
    except:
        context = {'info':'登录账号错误!'}
    return render(request,"myadmin/login.html",context)

# 会员退出
def logout(request):
    # 清除登录的session信息
    del request.session['adminuser']
    # 跳转登录页面(url地址改变)
    return redirect(reverse('myadmin_login'))
    # 加载登录页面(url地址不变)
    #return render(request,"myadmin/login.html")
...

3. 创建模板

  • 创建登录模板文件: templates/myadmin/login.html 代码如下:
{% load static from staticfiles %}
<!DOCTYPE html>
<html lang="cn">
    <head>
        <meta charset="utf-8">
        <title>Login - Akira</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="{% static 'myadmin/css/bootstrap.min.css' %}" rel="stylesheet">
        <link href="{% static 'myadmin/css/bootstrap-responsive.min.css' %}" rel="stylesheet">
        <link href="{% static 'myadmin/css/site.css' %}" rel="stylesheet">
        <!--[if lt IE 9]><script src="{% static 'myadmin/js/html5.js' %}"></script><![endif]-->
    </head>
    <body>
        <div id="login-page" class="container">
            <h1>商城后台管理登录</h1>
            <form id="login-form" method="post" class="well" action="{% url 'myadmin_dologin' %}">
            {% csrf_token %}
            账号:<input type="text" name="username" class="span2" placeholder="输入账号" /><br />
            密码:<input type="password" name="password" class="span2" placeholder="输入密码" /><br />
            <label class="checkbox"> <input type="checkbox" /> Remember me </label>
            <button type="submit" class="btn btn-primary">登录</button>
            <button type="reset" class="btn">重置</button>
        </form> 
        <br/>
        <span style="color:red">{{ info }}</span>
        </div>
        <script src="{% static 'myadmin/js/jquery.min.js' %}"></script>
        <script src="{% static 'myadmin/js/bootstrap.min.js' %}"></script>
        <script src="{% static 'myadmin/js/site.js' %}"></script>
    </body>
</html>
  • 修改模板文件:templates/myadmin/base.html 代码如下:

  • 代码在页头处,62~70行左右

...
        <ul class="nav pull-right">
            <li>
                <a href="profile.htm">@{{ request.session.adminuser }}</a>
            </li>
            <li>
                <a href="{% url 'myadmin_logout' %}">退出</a>
            </li>
        </ul>
...

4. 启动服务测试,即可测试网站后台是否可以使用。注意只有管理员才开登录。

results matching ""

    No results matching ""