zoukankan      html  css  js  c++  java
  • Django 电脑使用管理

    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" onclick="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
  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/crucial/p/6261384.html
Copyright © 2011-2022 走看看