1. 配置数据库链接

1 import pymysql
2 pymysql.install_as_MySQLdb()

computerManage/__init__.py

 1 DATABASES = {
 2     'default': {
 3         'ENGINE': 'django.db.backends.mysql',
 4         'NAME': 'computerManage',
 5         'USER': 'root',
 6         'PASSWORD': '123',
 7         'HOST': 'localhost',
 8         'PORT': '3306',
 9     }
10 }

computerManage/settings.py

2. 取消POST提交限制

1 MIDDLEWARE = [
2     'django.middleware.security.SecurityMiddleware',
3     'django.contrib.sessions.middleware.SessionMiddleware',
4     'django.middleware.common.CommonMiddleware',
5     # 'django.middleware.csrf.CsrfViewMiddleware',
6     'django.contrib.auth.middleware.AuthenticationMiddleware',
7     'django.contrib.messages.middleware.MessageMiddleware',
8     'django.middleware.clickjacking.XFrameOptionsMiddleware',
9 ]

computer/settings.py

3. 使用静态页模板

1 TEMPLATES = [
2     {
3         'BACKEND': 'django.template.backends.django.DjangoTemplates',
4         'DIRS': [os.path.join(BASE_DIR, 'templates')]
5         ,
6         'APP_DIRS': True,

computerManage/settings.py

4. 配置静态文件目录

1 STATIC_URL = '/static/'
2
3 STATICFILES_DIRS = (
4     os.path.join(BASE_DIR, "static"),
5 )

computerManage/settings.py

5. 配置路由

 1 from django.conf.urls import url,include
 2 from django.contrib import admin
 3 import web.urls
 4 from django.shortcuts import render_to_response
 5
 6 def index(request):
 7     return render_to_response('index.html')
 8
 9 urlpatterns = [
10     url(r'^$', index),
11     url(r'^admin/', admin.site.urls),
12     url(r'^web/', include('web.urls')),
13 ]

computerManage/urls.py

 1 from django.conf.urls import url
 2 from web.views import *
 3 urlpatterns = [
 4     url(r'^pcadd/',pcAdd),
 5     url(r'^pcedit/(?P<id>\d+)',pcEdit),
 6     url(r'^pclist/',pcList),
 7     url(r'^grouplist/',groupList),
 8     url(r'^groupadd/',groupAdd),
 9     url(r'^groupManagePcs/',groupManagePcs),
10     url(r'^utypelist/',userTypeList),
11     url(r'^utypeadd/',userTypeAdd),
12     url(r'^userlist/',userList),
13     url(r'^useradd/',userAdd),
14 ]

/web/urls.py

6. 模板文件

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 6     <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
 7     <title>{% block title %}{% endblock %}</title>
 8     <link rel="stylesheet" href="/static/css/bootstrap.min.css">
 9     <script type="text/javascript" src="/static/js/jquery.js"></script>
10     <script type="text/javascript">
11         $(function () {
12             var curUrl = window.location.pathname;
13             $("#topNav li").each(function(){
14                 if(curUrl.indexOf($(this).attr("nav"))>-1){
15                     $(this).addClass('active');
16                 }else{
17                     $(this).removeClass('active');
18                 }
19             });
20         });
21     </script>
22     {% block headjs %}{% endblock %}
23 </head>
24 <body>
25 <div class="container" style="margin-bottom: 5px;">
26     <ul id="topNav" class="nav nav-tabs" role="tablist" style="background-color: #efefff">
27         <li role="presentation" nav="index" style='font-weight: bold;'><a href="/">电脑管理系统</a></li>
28         <li role="presentation" nav="/web/pc"><a href="/web/pclist/">电脑管理</a></li>
29         <li role="presentation" nav="/web/group"><a href="/web/grouplist/">用户组管理</a></li>
30         <li role="presentation" nav="/web/utype"><a href="/web/utypelist/">用户类型管理</a></li>
31         <li role="presentation" nav="/web/user"><a href="/web/userlist/">用户管理</a></li>
32     </ul>
33 </div>
34 {% block content %}{% endblock %}
35 </body>
36 </html>

templates/base.html

 1 {% extends "base.html" %}
 2 {% block title %}录入电脑信息{% endblock %}
 3 {% block content %}
 4 <div class="container">
 5     <form action="{% if id %}/web/pcedit/{{ id }}{% else %}/web/pcadd/{% endif %}" method="post" class="form-horizontal">
 6         <div class="form-group">
 7             <h3 class="col-md-5 text-center">录入电脑信息</h3>
 8         </div>
 9         <div class="form-group">
10             <label class="control-label col-md-2">名称:</label>
11             <div class="col-md-3">{{ form.name }}</div>
12         </div>
13         <div class="form-group">
14             <label class="control-label col-md-2">编号:</label>
15             <div class="col-md-3">{{ form.code }}</div>
16         </div>
17         <div class="form-group">
18             <label class="control-label col-md-2">IP:</label>
19             <div class="col-md-3">{{ form.ip }}</div>
20         </div>
21         <div class="form-group">
22             <div class="col-md-6 text-center">
23                 <button type="submit" class="btn btn-default" name="act" value="save">保存</button>
24                 {% if id %}
25                 <button type="button" class="btn btn-default" onclick="window.close()" style="margin-left: 20px">关闭</button>
26                 {% else %}
27                 <button type="submit" class="btn btn-default" name="act" value="add" style="margin-left: 20px">添加</button>
28                 {% endif %}
29             </div>
30         </div>
31         <div class="col-md-6 text-center{% if err %} has-error{% endif %}{% if success %} has-success{% endif %}">
32             <label class="control-label">{{ err }}{{ success }}</label>
33         </div>
34     </form>
35 </div>
36 {% endblock %}

templates/computerAdd.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>首页</title>
 6     <script type="text/javascript">
 7         window.location.href="/web/pclist/";
 8     </script>
 9 </head>
10 <body>
11
12 </body>
13 </html>

templates/index.html

  1 {% extends "base.html" %}
  2 {% block title %}用户添加{% endblock %}
  3 {% block headjs %}
  4 <script type="text/javascript">
  5 $(function(){
  6     $("input[name='groupId']").bind("click",function(){
  7         var arr_ords, arr_name;
  8         $.ajax({
  9             type:'POST',
 10             url:"/web/groupManagePcs/",
 11             async:false,
 12             data:{ord:$(this).val()},
 13             success: function(r){
 14                 if(r!=""){
 15                     var arr_ret = r.split('\1')
 16                     var pcords = arr_ret[0];
 17                     var pcnames = arr_ret[1];
 18                     if(pcords!=""){
 19                         arr_ords = pcords.split(",");
 20                         arr_name = pcnames.split("\2");
 21                     }
 22                 }
 23             }
 24         });
 25
 26         if($(this).attr("checked")){
 27             for(var i=0;i<arr_ords.length;i++){
 28                 if($("#pc_"+arr_ords[i]).size()==0){
 29                     $('#pcShow').append('<label class="checkbox-inline"><input type="checkbox" name="pcord" id="pc_'+arr_ords[i]+'" value="'+arr_ords[i]+'">'+arr_name[i]+'</label>');
 30                 }
 31             }
 32         }else{
 33             for(var i=0;i<arr_ords.length;i++){
 34                 if($("#pc_"+arr_ords[i]).size()>0){
 35                     $('#pc_'+arr_ords[i]).parent().remove()
 36                 }
 37             }
 38         }
 39     });
 40 } );
 41 </script>
 42 {% endblock %}
 43 {% block content %}
 44 <div class="container">
 45     <form action="/web/useradd/" method="post" class="form-horizontal">
 46         <div class="form-group">
 47             <h3 class="col-md-5 text-center">录入用户信息</h3>
 48         </div>
 49         <div class="form-group">
 50             <label class="control-label col-md-2">名称:</label>
 51             <div class="col-md-3"><input type="text" class="form-control" name="name"></div>
 52         </div>
 53         <div class="form-group">
 54             <label class="control-label col-md-2">账号:</label>
 55             <div class="col-md-3"><input type="text" class="form-control" name="username"></div>
 56         </div>
 57         <div class="form-group">
 58             <label class="control-label col-md-2">密码:</label>
 59             <div class="col-md-3"><input type="password" class="form-control" name="password"></div>
 60         </div>
 61         <div class="form-group">
 62             <label class="control-label col-md-2">所属类型:</label>
 63             <div class="col-md-3">
 64                 <select type="text" class="form-control" name="typeId">
 65                 <option value="">请选择用户类型</option>
 66                 {% for utype in utlist %}
 67                 <option value="{{ utype.id }}">{{ utype.name }}</option>
 68                 {% endfor %}
 69                 </select>
 70             </div>
 71         </div>
 72         <div class="form-group">
 73             <label class="control-label col-md-2">所属组:</label>
 74             <div class="col-md-5">
 75                 {% for group in grouplist %}
 76                 <label class="checkbox-inline"><input type="checkbox" name="groupId" value="{{ group.id }}">{{ group.name }}</label>
 77                 {% endfor %}
 78             </div>
 79         </div>
 80         <div class="form-group">
 81             <label class="control-label col-md-2">可管理电脑:</label>
 82             <div class="col-md-5" id="pcShow"></div>
 83         </div>
 84          <div class="form-group">
 85             <label class="control-label col-md-2">年龄:</label>
 86             <div class="col-md-1"> <input type="text" class="form-control" name="age"></div>
 87             <label class="control-label col-md-1">性别:</label>
 88             <div class="col-md-2">
 89                 <label class="radio-inline"><input type="radio" name="gender" value="0" checked="">男</label>
 90                 <label class="radio-inline"><input type="radio" name="gender" value="1">女</label>
 91             </div>
 92         </div>
 93         <div class="form-group">
 94             <label class="control-label col-md-2">手机:</label>
 95             <div class="col-md-3"><input type="text" class="form-control" name="phone"></div>
 96         </div>
 97         <div class="form-group">
 98             <label class="control-label col-md-2">邮箱:</label>
 99             <div class="col-md-3"><input type="text" class="form-control" name="email"></div>
100         </div>
101         <div class="form-group">
102             <label class="control-label col-md-2">备注:</label>
103             <div class="col-md-5"><textarea class="form-control" name="memo"></textarea></div>
104         </div>
105         <div class="form-group">
106             <div class="col-md-6 text-center">
107                 <button type="submit" class="btn btn-default" name="act" value="save">保存</button>
108                 <button type="submit" class="btn btn-default" name="act" value="add" style="margin-left: 20px">添加</button>
109             </div>
110         </div>
111         <div class="col-md-6 text-center{% if err %} has-error{% endif %}{% if success %} has-success{% endif %}">
112             <label class="control-label">{{ err }}{{ success }}</label>
113         </div>
114     </form>
115 </div>
116 {% endblock %}

templates/userAdd.html

 1 {% extends "base.html" %}
 2 {% block title %}添加用户组{% endblock %}
 3 {% block content %}
 4 <div class="container">
 5     <form action="/web/groupadd/" method="post" class="form-horizontal">
 6         <div class="form-group">
 7             <h3 class="col-md-5 text-center">添加用户组</h3>
 8         </div>
 9         <div class="form-group">
10             <label class="control-label col-md-2">名称:</label>
11             <div class="col-md-3"><input type="text" class="form-control" name="name"></div>
12         </div>
13         <div class="form-group">
14             <label class="control-label col-md-2">可管理电脑:</label>
15             <div class="col-md-5">
16                 {% for pc in pclist %}
17                 <label class="checkbox-inline"><input type="checkbox" name="pc" value="{{ pc.id }}">{{ pc.name }}</label>
18                 {% endfor %}
19             </div>
20         </div>
21         <div class="form-group">
22             <div class="col-md-6 text-center">
23                 <button type="submit" class="btn btn-default" name="act" value="save">保存</button>
24                 <button type="submit" class="btn btn-default" name="act" value="add" style="margin-left: 20px">添加</button>
25             </div>
26         </div>
27         <div class="col-md-6 text-center{% if err %} has-error{% endif %}{% if success %} has-success{% endif %}">
28             <label class="control-label">{{ err }}{{ success }}</label>
29         </div>
30     </form>
31 </div>
32 {% endblock %}

templates/userGroupAdd.html

 1 {% extends "base.html" %}
 2 {% block title %}用户组列表{% endblock %}
 3 {% block content %}
 4 <div class="container">
 5     <div class="col-md-12 text-right" style="margin-bottom: 8px;">
 6         <a class="btn btn-primary" href="/web/groupadd/">新增用户组</a>
 7     </div>
 8     <div class="col-md-12">
 9         <table class="table table-bordered table-striped table-hover">
10             <tr class="info">
11                 <th>名称</th>
12                 <th>可管理电脑</th>
13                 <th class="text-center">操作</th>
14             </tr>
15             {% for item in gplist %}
16             <tr>
17                 <td>{{ item.group.name }}</td>
18                 <td>{{ item.managePcs }}</td>
19                 <td class="text-center"></td>
20             </tr>
21             {% endfor %}
22         </table>
23     </div>
24 </div>
25 {% endblock %}

templates/userGroupList.html

 1 {% extends "base.html" %}
 2 {% block title %}用户列表{% endblock %}
 3 {% block content %}
 4 <div class="container">
 5     <div class="col-md-12 text-right" style="margin-bottom: 5px;">
 6         <a class="btn btn-primary" href="/web/useradd/">新增用户</a>
 7     </div>
 8     <div class="col-md-12">
 9         <table class="table table-bordered table-striped table-hover">
10             <tr class="info">
11                 <th>名称</th>
12                 <th>用户名</th>
13                 <th>用户组</th>
14                 <th class="text-center">类型</th>
15                 <th class="text-center">年龄</th>
16                 <th>手机</th>
17                 <th>邮箱</th>
18                 <th class="text-center">添加时间</th>
19                 <th class="text-center">操作</th>
20             </tr>
21             {% for user in list %}
22             <tr>
23                 <td>{{ user.name }}</td>
24                 <td>{{ user.username }}</td>
25                 <td>{{ user.groupId.name }}</td>
26                 <td class="text-center">{{ user.typeId.name }}</td>
27                 <td class="text-center">{% if user.gender %}女{% else %}男{% endif %}</td>
28                 <td>{{ user.phone }}</td>
29                 <td>{{ user.email }}</td>
30                 <td class="text-center">{{ user.createDate|date:"Y-m-d H:i:s" }}</td>
31                 <td class="text-center"></td>
32             </tr>
33             {% endfor %}
34         </table>
35     </div>
36 </div>
37 {% endblock %}

templates/userList.html

 1 {% extends "base.html" %}
 2 {% block title %}添加用户类型{% endblock %}
 3 {% block content %}
 4 <div class="container">
 5     <form action="{% if id %}}/web/utypedit/{{ id }}{% else %}/web/utypeadd/{% endif %}" method="post" class="form-horizontal">
 6         <div class="form-group">
 7             <h3 class="col-md-5 text-center">添加用户类型</h3>
 8         </div>
 9         <div class="form-group">
10             <label class="control-label col-md-2">类型名称:</label>
11             <div class="col-md-3">{{ form.name}}</div>
12         </div>
13         <div class="form-group">
14             <div class="col-md-6 text-center">
15                 <button type="submit" class="btn btn-default" name="act" value="save">保存</button>
16                 {% if id %}}
17                 <button type="submit" class="btn btn-default" name="act" value="add" style="margin-left: 20px">添加</button>
18                 {% else %}
19                 <button type="submit" class="btn btn-default" name="act" value="add" style="margin-left: 20px">添加</button>
20                 {% endif %}
21             </div>
22         </div>
23         <div class="col-md-6 text-center{% if err %} has-error{% endif %}{% if success %} has-success{% endif %}">
24             <label class="control-label">{{ err }}{{ success }}</label>
25         </div>
26     </form>
27 </div>
28 {% endblock %}

template/userTypteAdd.html

 1 {% extends "base.html" %}
 2 {% block title %}用户类型列表{% endblock %}
 3 {% block content %}
 4 <div class="container">
 5     <div class="col-md-12 text-right" style="margin-bottom: 8px;">
 6         <a class="btn btn-primary" href="/web/utypeadd/">新增用户类型</a>
 7     </div>
 8     <div class="col-md-12">
 9         <table class="table table-bordered table-striped table-hover">
10             <tr class="info">
11                 <th>类型名称</th>
12                 <th class="text-center">操作</th>
13             </tr>
14             {% for item in list %}
15             <tr>
16                 <td>{{ item.name }}</td>
17                 <td class="text-center"></td>
18             </tr>
19             {% endfor %}
20         </table>
21     </div>
22 </div>
23 {% endblock %}

templates/userTypeList

 1 {% extends "base.html" %}
 2 {% block title %}电脑列表{% endblock %}
 3 {% block headjs %}
 4 <script type="text/javascript">
 5 function edit(id){
 6     window.open('/web/pcedit/'+id, 'newwindow', 'height=500, width=1000, top=100, left=200, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no')
 7 }
 8 </script>
 9 {% endblock %}
10 {% block content %}
11 <div class="container">
12     <div class="col-md-12 text-right" style="margin-bottom: 5px;">
13         <a class="btn btn-primary" href="/web/pcadd/">新增电脑</a>
14     </div>
15     <div class="col-md-12">
16         <table class="table table-bordered table-striped table-hover">
17             <tr class="info">
18                 <th>名称</th>
19                 <th>编号</th>
20                 <th>IP</th>
21                 <th class="text-center">操作</th>
22             </tr>
23             {% for pc in list %}
24             <tr>
25                 <td>{{ pc.name }}</td>
26                 <td>{{ pc.code }}</td>
27                 <td>{{ pc.ip }}</td>
28                 <td class="text-center">
29                     <button class="btn btn-default btn-sm" οnclick="edit({{ pc.id }})">修改</button>
30                 </td>
31             </tr>
32             {% endfor %}
33         </table>
34     </div>
35     <nav class="text-center">
36         <ul class="pagination">{{ pageHtml }}</ul>
37     </nav>
38 </div>
39 {% endblock %}

template/computerList.html

7. 使用到的模型

 1 from django.db import models
 2
 3 # 电脑
 4 class Computer(models.Model):
 5     name = models.CharField(max_length=20)
 6     code = models.CharField(max_length=30)
 7     ip = models.CharField(null=True, max_length=30)
 8
 9 # 用户组
10 class UserGroup(models.Model):
11     name = models.CharField(max_length=20)
12     managePcs = models.CharField(null=True,max_length=500)
13
14 # 用户类型
15 class UserType(models.Model):
16     name = models.CharField(max_length=20)
17
18 # 用户
19 class Users(models.Model):
20     name = models.CharField(max_length=20)
21     username = models.CharField(max_length=20)
22     password = models.CharField(max_length=50)
23     email = models.EmailField(max_length=200, null=True)
24     phone = models.CharField(max_length=30, null=True)
25     gender = models.BooleanField(default=False)
26     age = models.IntegerField(null=True)
27     memo = models.TextField(null=True)
28     createDate = models.DateTimeField(auto_now_add=True)
29     updateDate = models.DateTimeField(auto_now=True)
30     typeId = models.ForeignKey(UserType)
31     groupId = models.ManyToManyField(UserGroup)
32     managePcs = models.CharField(null=True,max_length=500)

web/models.py

8. 使用到的表单

 1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 from django import forms
 4
 5 class ComputerForm(forms.Form):
 6     name = forms.CharField(max_length=20)
 7     code = forms.CharField(max_length=30)
 8     # code = forms.CharField(max_length=30, widget=forms.TextInput(attrs={'class': 'form-control'}))
 9     ip = forms.GenericIPAddressField()
10     def __init__(self,*args,**kwargs):
11         super(ComputerForm,self).__init__(*args,**kwargs)
12         self.fields['name'] = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control'}))
13         self.fields['code'] = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control'}))
14         self.fields['ip'] = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control'}))

web/Forms/Computer.py

 1 #/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3
 4 from django import forms
 5
 6 # class UserAdd(forms.Form):
 7 #     name = forms.CharField(max_length=20)
 8 #     username = forms.CharField(max_length=20)
 9 #     password = forms.CharField(max_length=20)
10 #     email = forms.EmailField(max_length=200, null=True)
11 #     phone = forms.CharField(max_length=30, null=True)
12 #     gender = forms.BooleanField(default=False)
13 #     age = forms.IntegerField(null=True)
14 #     memo = forms.TextField(null=True)
15
16
17 class UserTypeForm(forms.Form):
18     name = forms.CharField(max_length=30, widget=forms.TextInput(attrs={'class': 'form-control'}))
19     

web/Forms/Users.py

9. 使用到的视图

  1 from django.http import HttpResponse, HttpResponseRedirect
  2 from django.shortcuts import render, render_to_response
  3 from django.template import RequestContext
  4
  5 from web.Forms.Computer import ComputerForm as pcForm
  6 from web.Forms.Users import UserTypeForm
  7 from web.models import *
  8 from common import PageHelper
  9
 10 def pcAdd(request):
 11     pcform = pcForm()
 12     if request.method == 'POST':
 13         form = pcForm(request.POST)
 14         if form.is_valid():
 15             data = form.cleaned_data
 16             if Computer.objects.filter(code=data['code']).count()==0:
 17                 Computer.objects.create(name=data['name'], code=data['code'], ip=data['ip'])
 18                 if request.POST['act'] == 'save':
 19                     # return render_to_response('computerAdd.html', {'form': pcform,'success':'保存成功!'})
 20                     return HttpResponseRedirect('/web/pclist/')
 21                 else:
 22                     return HttpResponseRedirect('/web/pcadd/')
 23             else:
 24                 return render_to_response('computerAdd.html', {'form': pcform, 'err': '编号为【'+data['code']+'】的电脑已存在!'})
 25         else:
 26             return render_to_response('computerAdd.html', {'form': pcform,'err':'保存失败!'})
 27     else:
 28         return render_to_response('computerAdd.html',{'form': pcform})
 29
 30 def pcEdit(request, id):
 31     pcform = pcForm()
 32     if request.method == 'POST':
 33         form = pcForm(request.POST)
 34         if form.is_valid():
 35             data = form.cleaned_data
 36             if Computer.objects.filter(id=id).count()>0:
 37                 pc = Computer.objects.get(id=id)
 38                 pc.name = data['name']
 39                 pc.code = data['code']
 40                 pc.ip = data['ip']
 41                 pc.save()
 42                 return HttpResponse('<script>if(window.opener){window.opener.location.reload();window.close();}</script>')
 43         else:
 44             return render_to_response('computerAdd.html', {'form': pcform,'err':'保存失败!'})
 45     else:
 46         # print(id)
 47         pc = Computer.objects.get(id=id)
 48         pcform = pcForm(initial={'name':pc.name,'code':pc.code,'ip':pc.ip})
 49         return render_to_response('computerAdd.html',{'form': pcform,'id':id})
 50
 51 def pcList(request, page):
 52     container = {}
 53
 54     count = Computer.objects.order_by('-id').count()
 55     pager = PageHelper.PageHelper('/web/pclist/', count, page,5)
 56     list = Computer.objects.order_by('-id')[pager.start:pager.end]
 57
 58     pageHtml = pager.pageHtml()
 59     container['list'] = list
 60     container['pageHtml'] = pageHtml
 61     return render_to_response('computerList.html', container)
 62
 63 def transIntOrds(list):
 64     ret = ''
 65     for ord in list:
 66         ret += ('' if ret=='' else ',') + ord
 67     return ret
 68
 69 def getPcListByIds(ords):
 70     pcords = list(eval('('+ ords +',)'))
 71     pclist = Computer.objects.filter(id__in=pcords)
 72     return pclist
 73
 74 def groupList(request):
 75     gplist = []
 76     groups = UserGroup.objects.order_by('-id')
 77     for group in groups:
 78         pclist = getPcListByIds(group.managePcs)
 79         pcnames = ""
 80         for pc in pclist:
 81             pcnames += pc.name + " "
 82         gplist.append({"group":group, "managePcs":pcnames})
 83     return render_to_response('userGroupList.html',{'gplist':gplist})
 84
 85 def groupAdd(request):
 86     if request.method == 'POST':
 87         name = request.POST.get('name','')
 88         if name.strip() == '':
 89             pclist = Computer.objects.order_by('-id').values('id','name')
 90             return render_to_response('userGroupAdd.html',{'pclist':pclist, 'err':'请输入组名称!'})
 91         pc = request.POST.getlist('pc')
 92         pcords = transIntOrds(pc)
 93
 94         if UserGroup.objects.filter(name=name).count()==0:
 95             UserGroup.objects.create(name=name, managePcs=pcords)
 96             if request.POST['act'] == 'save':
 97                 return HttpResponseRedirect('/web/grouplist/')
 98             else:
 99                 return HttpResponseRedirect('/web/groupadd')
100         else:
101             pclist = Computer.objects.order_by('-id').values('id','name')
102             return render_to_response('userGroupAdd.html',{'pclist':pclist, 'err':'这个用户组已存在!'})
103     else:
104         pclist = Computer.objects.order_by('-id').values('id','name')
105         return render_to_response('userGroupAdd.html',{'pclist':pclist})
106
107 def groupManagePcs(request):
108     ord = request.POST.get('ord',None)
109     if ord==None:
110         ord = 0
111     group = UserGroup.objects.get(id=ord)
112     pclist = getPcListByIds(group.managePcs)
113     pcnames = ''
114     for pc in pclist:
115         pcnames += ('' if pcnames=='' else '\2') + pc.name
116     return HttpResponse(group.managePcs +'\1'+pcnames)
117
118 def userTypeList(request):
119     utlist = UserType.objects.order_by('-id')
120     return render_to_response('userTypeList.html',{'list':utlist})
121
122
123 def userTypeAdd(request):
124     utypeForm = UserTypeForm()
125     if request.method == 'POST':
126         form = UserTypeForm(request.POST)
127         if form.is_valid():
128             data = form.cleaned_data
129             UserType.objects.create(name=data['name'])
130             if request.POST['act'] == 'save':
131                 return HttpResponseRedirect('/web/utypelist/')
132             else:
133                 return HttpResponseRedirect('/web/utypeadd/')
134         else:
135             return render_to_response('userTypeAdd.html',{'form':utypeForm, 'err':'保存失败!'})
136     else:
137         return render_to_response('userTypeAdd.html',{'form':utypeForm})
138
139
140 def userList(request):
141     userList = Users.objects.order_by('-createDate')
142     return render_to_response('userList.html',{'list':userList})
143
144 def userAdd(request):
145     contaions = {}
146     if request.method == 'POST':
147         noErr = True
148         errTip = ''
149         name = request.POST.get('name',None)
150         username = request.POST.get('username',None)
151         password = request.POST.get('password',None)
152         typeId = request.POST.get('typeId',None)
153         gplist = request.POST.getlist('groupId')
154         pcordlist = request.POST.getlist('pcord')
155         age = request.POST.get('age',None)
156         gender = request.POST.get('gender',None)
157         phone = request.POST.get('phone',None)
158         email = request.POST.get('email',None)
159         memo = request.POST.get('memo',None)
160         act = request.POST.get('act','')
161         if noErr and name == None:
162             errTip = '请输入用户名称!'
163             noErr = False
164         if noErr and username == None:
165             errTip = '请输入用户账号!'
166             noErr = False
167         if noErr and password == None:
168             errTip = '请输入用户密码!'
169             noErr = False
170         if noErr and typeId == None:
171             errTip = '请选择用户类型!'
172             noErr = False
173         if noErr and age!=None and age.isdigit()==False:
174             errTip = '请正确的年龄!'
175             noErr = False
176         if noErr==False:
177             contaions['err'] = errTip
178             grouplist = UserGroup.objects.order_by('-id')
179             contaions['grouplist'] = grouplist
180             utlist = UserType.objects.order_by('-id')
181             contaions['utlist'] = utlist
182             return render_to_response('userAdd.html', contaions)
183         else:
184             user = Users.objects.create(name=name,
185                 username=username,password=password,
186                 typeId=UserType.objects.get(id=typeId),
187                 managePcs=transIntOrds(pcordlist),
188                 age=age,gender=gender,phone=phone,
189                 email=email,memo=memo)
190             user.save()
191             glist = UserGroup.objects.filter(id__in=gplist)
192             user.groupId.add(*glist)
193             # for gord in gplist:
194             #     group = UserGroup.objects.get(id=gord)
195             #     user.groupId.add(group)
196
197             if act == 'save':
198                 return HttpResponseRedirect('/web/userlist/')
199             else:
200                 return HttpResponseRedirect('/web/useradd/')
201     else:
202         grouplist = UserGroup.objects.order_by('-id')
203         contaions['grouplist'] = grouplist
204         utlist = UserType.objects.order_by('-id')
205         contaions['utlist'] = utlist
206         return render_to_response('userAdd.html', contaions)

web/views.py

转载于:https://www.cnblogs.com/crucial/p/6261384.html

Django 电脑使用管理相关推荐

  1. 一台计算机如何创建多个用户,一台电脑怎么管理多个腾讯视频号

    原标题:一台电脑怎么管理多个腾讯视频号 最近几年短视频的吃香,此类平台实在是多,但是真正操作起来,才会发现让人烦不胜烦,每天一开工,都得一个平台一个平台登录,点开一个又一个账号看数据,好不容易把内容搞 ...

  2. 软件界面是怎么做出来的_电脑时间管理软件,每天要做的事情会有对话框跳出来提醒的便签软件...

    对于上班族来讲,每天的工作时间大多数都是八小时,在面对繁重的工作任务时,如果不能合理安排这八小时的工作时间,很容易在下班时工作任务还未完成:因此为了提高工作的效率,同时确保在工作时间内完成工作任务,大 ...

  3. Django使用supervisor管理celery和uwsgi实践记录 uwsgi BACKOFF Exited too quickly (process log may have details)

    Django使用supervisor管理celery和uwsgi实践记录 安装下载supervisor不用多说. 直接上配置文件: vir_path标识虚拟环境路径 pro_path标识项目路径 全部 ...

  4. win10桌面计算机打不开,win10桌面此电脑右键管理打不开处理方法

    在win10系统中,每当我们想要了解自己电脑中的一些基本信息的时候,就可以通过鼠标点击桌面此电脑选择管理打开来了解,然而最近有用户想要打开win10桌面此电脑右键管理时却出现了打不开的情况,那么对此有 ...

  5. 查询计算机网络凭据,查看电脑账密利器 - 电脑凭据管理器图文使用教程

    原标题:查看电脑账密利器 - 电脑凭据管理器图文使用教程 在使用浏览器时我们习惯通过记住密码来保存登录账号,方便下次登录使用,但是这些密码要怎么查看呢?如果我忘记了某个账号,我该如通过浏览器记住的密码 ...

  6. Django实现用户管理

    Django实现用户管理 前言 第一节 - 自定义模版和静态文件 1. 自定义模版位置和静态文件 2. 通用静态文件和模版设置 模版设置: 3. 关于访问 /admin 报错的探究 第二节 - 用户登 ...

  7. python django实验室药物管理预警系统

    python django实验室药物管理预警系统 pythondjango药物管理系统 pythondjango实验室管理系统 pythondjango药物借用系统 后端:python django ...

  8. 计算机怎么调节音乐模式,电脑音频管理器怎么设置,教你电脑音频管理器怎么设置...

    realtek高清晰音频管理器是用来调节音频用的,我们可对它进行设置的,可是很多用户不懂得realtek高清晰音频管理器怎么设置?其实方法很简单,下面小编教你电脑音频管理器怎么设置吧. 1,在win7 ...

  9. 闲鱼客服工具/消息管理系统:可以让客服放下手机,在电脑上管理闲鱼店铺的咨询信息

    闲鱼是一个很神奇的APP, 在上面几乎有一切二手的东西. 现在也有很多人在闲鱼发展自己的副业,甚至是事业,闲鱼客服的工作就成了整天面对手机,管理和回复商品的购买和咨询信息. 这款软件的目的是让闲鱼客服 ...

最新文章

  1. Cortex-M0 LPC11U 中断向量
  2. Android调试错误-No resource identifier found for attribute 'showAsAction'
  3. 在eclipse使用map reduce编写word count程序生成jar包并在虚拟机运行的步骤
  4. JStorm与Storm源码分析(七)--BasicBoltExecutor与装饰模式
  5. hdu 2031 进制转换
  6. msiexec 命令使用文档
  7. 【Python成长之路】从 零做网站开发 -- 基于Flask和JQuery,实现表格管理平台
  8. DVWA 黑客攻防演练(七)Weak Session IDs
  9. http 二进制_百度云加速科普小课堂-HTTP/2解析
  10. yaml语法三大规则
  11. tomcat启动报错:Address already in use: JVM_Bind
  12. 编译最新版webrtc源码和编译好的整个项目10多个G【分享】
  13. 3dmax计算机组装动画,3dmax怎么做动画,教你3dsmax动画制作流程和基本套路
  14. ps教程300集,让你入门就精通(内附资源)
  15. 上面两点下面一个三角形_初中数学:相似三角形判定定理证明浅见,来说说你的方法吧...
  16. 深度学习论文: An Energy and GPU-Computation Efficient Backbone Network for Object Detection及其PyTorch
  17. 机器学习中使用的神经网络(六) --第二课
  18. 机器学习(二)线性模型——线性回归、对数几率回归、线性判别分析
  19. HDOJ 5498 Tree
  20. 【3】 Shell基本系统命令

热门文章

  1. kalixfce不能启动_kali升级2019.4后切换xfce桌面
  2. python 批量创建线程_【Python】批量创建线程
  3. 算法的优缺点_机器学习算法优缺点 amp; 如何选择
  4. nslookup type值_nslookup查询
  5. php验证ip地址的函数,php使用preg_match()函数验证ip地址的方法
  6. 的引用_java中的强引用,软引用,弱引用,虚引用
  7. 分布式服务器客户端实验
  8. 女主播还是女主播???
  9. 郑州百知面试题 SSM试题三
  10. 手机拍照显示_最值得购买的4款5G手机,每款都有一技之长,有你在用的吗?