Python2—0807笔记

管理系统list

管理系统增删改


管理系统list

cmdb[urls.py](http://urls.py)

代码

from django.conf.urls import url,include

from django.contrib import admin

from demo01 import views

urlpatterns = \[

    url(r'^admin/', admin.site.urls),

    url(r'^host/', include('host.urls')),

\]

host[urls.py](http://urls.py)

代码

from django.conf.urls import url,include

from django.contrib import admin

from host import views

urlpatterns = \[

    url(r'list$', views.List.as_view()),

    url(r'add$', views.Add.as_view()),

    url(r'edit/(\\d+)/', views.Update.as_view()),

    url(r'del', views.Del.as_view()),

\]

#host/list views.List.as_view()),

#host/add views.Add.as_view())

models.py

代码

from django.db import models

class Disk(models.Model):

    '''磁盘'''

    path = models.CharField(max\_length=64, blank=True, null=True, verbose\_name='挂载路径')

    size = models.CharField(max\_length=16, blank=True, null=True, verbose\_name='磁盘大小/G')

    remarks = models.CharField(max\_length=2048, blank=True, null=True, verbose\_name='备注')

    def \_\_str\_\_(self):

        return self.size

    class Meta:

        verbose\_name\_plural = "磁盘表"

class Region(models.Model):

    name = models.CharField(max\_length=64,blank=True,null=True,verbose\_name='区域')

    def \_\_str\_\_(self):

        return self.name

    class Meta:

        verbose\_name\_plural = "区域表"

class Host(models.Model):

    hostname = models.CharField(max\_length=64, blank=True, null=True, verbose\_name='阿里云主机名')

    ecsname = models.CharField(max\_length=64, blank=True, null=True, verbose\_name='阿里云实例ID')

    logining = models.ManyToManyField(to='Login', blank=True, null=True, verbose_name='授权用户')

    login\_port = models.CharField(max\_length=16, default='22', blank=True, null=True, verbose_name='ssh登录端口')

    cpu = models.CharField(max\_length=8, blank=True, null=True, verbose\_name='CPU')

    mem = models.CharField(max\_length=8, blank=True, null=True, verbose\_name='内存/G')

    speed = models.CharField(max\_length=8, blank=True, default='5', null=True, verbose\_name='带宽/M')

    disks = models.ManyToManyField(to='Disk', blank=True, null=True, verbose_name='磁盘')

    network = models.CharField(max\_length=32, blank=True, null=True, verbose\_name='IP')

    sn = models.CharField(max\_length=64, blank=True, null=True, verbose\_name='sn')

    kernel = models.CharField(max\_length=64, blank=True, null=True, verbose\_name='系统内核')  # 内核+版本号

    source = models.ForeignKey(to='Source', blank=True, null=True, verbose\_name='来源类型',on\_delete=models.CASCADE)

    region = models.ForeignKey(to='Region', blank=True, null=True, verbose\_name='所属区域',on\_delete=models.CASCADE)

    state_choices = (

        (1, 'Running'),

        (2, '下线'),

        (3, '关机'),

        (4, '删除'),

        (5, '故障'),

    )

    state = models.SmallIntegerField(verbose\_name='主机状态', choices=state\_choices, blank=True, null=True, )

    def \_\_str\_\_(self):

        return self.network

    class Meta:

        verbose\_name\_plural = "主机表"

class Login(models.Model):

    '''登录相关'''

    login\_name = models.CharField(max\_length=16, default='root', verbose_name='登录用户名')

    login\_pwd= models.CharField(max\_length=64, blank=True, null=True, verbose_name='登录密码')

    auth=models.CharField(max\_length=8,blank=True, null=True, verbose\_name='具有权限')

    def \_\_str\_\_(self):

        return self.login_name

    class Meta:

        verbose\_name\_plural = "主机用户表"

class Source(models.Model):

    '''来源:阿里云、物理机(某机房等)'''

    name = models.CharField(max\_length=16, blank=True, null=True, verbose\_name='来源')

    def \_\_str\_\_(self):

        return self.name

    class Meta:

        verbose\_name\_plural = "主机来源表"

host.html

代码

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>主机列表</title>

</head>

<body>

<div>

    <a href="/host/add">添加</a>

</div>

<div class="container">

    <table class="table table-bordered table-hover" id="table">

            <thead>

                <tr>

                    <th>  </th>

                    <th> 主机名 </th>

                    <th> CPU </th>

                    <th> 内存/G </th>

                    <th> 带宽/M </th>

                    <th> IP </th>

                    <th> 来源类型 </th>

                    <th> 所属区域 </th>

                    <th> 状态 </th>

                    <th> 编辑 </th>

                    <th> 删除 </th>

                </tr>

            </thead>

            <tbody>

                {% for host in host_list %}

                    <tr>

                            <td>{{ host.id }}</td>

                            <td>{{ host.hostname }}</td>

                            <td>{{ host.cpu }}</td>

                            <td>{{ host.mem }}</td>

                            <td>{{ host.speed }}</td>

                            <td>{{ host.network }}</td>

                            <td>{{ host.source }}</td>

                            <td>{{ host.region }}</td>

                            <td>{{ host.get\_state\_display }}</td>

                            <td><a href="/host/edit/{{ host.id }}/">编辑</a></td>

{#                            <td><a href="/host/edit?id={{ host.id }}">编辑</a></td>#}

                            <td><a href="/host/del?id={{ host.id }}">删除</a></td>

                    </tr>

                {% endfor %}

            </tbody>

        </table>

</div>

</body>

{host.get_state_display }} django 自带方法

views.py

代码

from django.shortcuts import render,redirect,HttpResponse

from django.views import View

from demo01 import models

from utlis import form_class

#https://www.cnblogs.com/onda/p/7509172.html

class List(View):

    def post(self,request,\*args,\*\*kwargs):

        pass

    def get(self,request,\*args,\*\*kwargs):

        #取到所有值

        host_list=models.Host.objects.all()

        # return render(request,'host.html',{'host\_list':host\_list})

        return render(request,'host.html',locals())

class Add(View):

    def post(self,request,\*args,\*\*kwargs):

        # print(request.POST)

        form=form_class.HostForm(data=request.POST)

        if form.is_valid():

            # form.cleaned\_data\['source'\]=int(form.cleaned\_data\['source'\])

            models.Host.objects.create(**form.cleaned_data)

            # print('提交正常')

            return redirect('/host/list')

        else:

            print('错误信息',form.errors)

            return render(request,'add.html',locals())

    def get(self,request,\*args,\*\*kwargs):

        form=form_class.HostForm()

        # bbb='测试'

        return render(request,'add.html',locals())

class Update(View):

    def post(self,request,pk):

        print(pk)

        form = form_class.HostForm(data=request.POST)

        if form.is_valid():

            print(form.cleaned_data)

            models.Host.objects.filter(id=pk).update(**form.cleaned_data)

            # print('提交正常')

            return redirect('/host/list')

        else:

            print(form.errors)

            return render(request, 'edit.html', locals())

    def get(self,request,pk):

        print(pk)

        # get_id=int(request.GET.get('id'))

        obj=models.Host.objects.filter(id=pk).first()  #queset 类型

        # obj=models.Host.objects.filter(id=get\_id)   # queset\_list类型,但是只有一个值    \[1,\]

        #没写完

        form=form_class.HostForm(

            initial={'hostname':obj.hostname,

                     'ecsname':obj.ecsname,

                     'cpu':obj.cpu,

                     'mem':obj.mem,

                     'speed':obj.speed,

                     'network':obj.network,

                     'source\_id':obj.source\_id,

                     'region\_id':obj.region\_id,

                     }

        )

        return render(request,'edit.html',locals())

class Del(View):

    def post(self,request,\*args,\*\*kwargs):

        pass

    def get(self,request,\*args,\*\*kwargs):

        get_id = int(request.GET.get('id'))

        # get_id=int(request.GET.get('id'))

        models.Host.objects.filter(id=get_id).delete()

        return redirect('host/list')

运行

访问127.0.0.1:8000/host/list


管理系统增删改

增加

add.html

代码

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

<form class="form-horizontal templatemo-container templatemo-login-form-1 margin-bottom-30" method="post" novalidate  role="form">

    {% csrf_token %}

    <p id="hostname">阿里云主机名:{{ form.hostname }}{{ form.errors.hostname.0 }}</p>

    <p id="ecsname">阿里云实例ID:{{ form.ecsname }}{{ form.errors.ecsname.0 }}</p>

    <p id="cpu">CPU:{{ form.cpu }}{{ form.errors.cpu.0 }}</p>

    <p id="mem">内存/G:{{ form.mem }}{{ form.errors.mem.0 }}</p>

    <p id="speed">带宽/M:{{ form.speed }}{{ form.errors.speed.0 }}</p>

    <p id="network">IP:{{ form.network }}{{ form.errors.network.0 }}</p>

    <p id="source">来源类型:{{ form.source\_id }}{{ form.errors.source\_id.0 }}</p>

    <p id="region">所属区域:{{ form.region\_id }}{{ form.errors.region\_id.0 }}</p>

{#    <p id="disks">磁盘:{{ form.disks\_id }}{{ form.errors.disks\_id.0 }}</p>#}

    <input type="submit" value="提交">

</form>

</body>

</html>

veiws.py 

增加代码

class Add(View):

    def post(self,request,\*args,\*\*kwargs):

        # print(request.POST)

        form=form_class.HostForm(data=request.POST)

        if form.is_valid():

            # form.cleaned\_data\['source'\]=int(form.cleaned\_data\['source'\])

            models.Host.objects.create(**form.cleaned_data)

            # print('提交正常')

            return redirect('/host/list')

        else:

            print('错误信息',form.errors)

            return render(request,'add.html',locals())

修改

edit.html

代码

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

<form class="form-horizontal templatemo-container templatemo-login-form-1 margin-bottom-30" method="post" novalidate   role="form">

    {% csrf_token %}

    <p id="hostname">阿里云主机名:{{ form.hostname }}{{ form.errors.hostname.0 }}</p>

    <p id="ecsname">阿里云实例ID:{{ form.ecsname }}{{ form.errors.hostname.0 }}</p>

    <p id="cpu">CPU:{{ form.cpu }}{{ form.errors.cpu.0 }}</p>

    <p id="mem">内存/G:{{ form.mem }}{{ form.errors.mem.0 }}</p>

    <p id="speed">带宽/M:{{ form.speed }}{{ form.errors.speed.0 }}</p>

    <p id="network">IP:{{ form.network }}{{ form.errors.network.0 }}</p>

    <p id="source">来源类型:{{ form.source\_id }}{{ form.errors.source\_id.0 }}</p>

    <p id="region">所属区域:{{ form.region\_id }}{{ form.errors.region\_id.0 }}</p>

{#    <p id="disks">磁盘:{{ form.disks\_id }}{{ form.errors.disks\_id.0 }}</p>#}

    <input type="submit" value="提交">

</form>

</body>

</html>

views.py 

修改代码

class Update(View):

    def post(self,request,pk):

        print(pk)

        form = form_class.HostForm(data=request.POST)

        if form.is_valid():

            print(form.cleaned_data)

            models.Host.objects.filter(id=pk).update(**form.cleaned_data)

            # print('提交正常')

            return redirect('/host/list')

        else:

            print(form.errors)

            return render(request, 'edit.html', locals())

    def get(self,request,pk):

        print(pk)

        # get_id=int(request.GET.get('id'))

        obj=models.Host.objects.filter(id=pk).first()  #queset 类型

        # obj=models.Host.objects.filter(id=get\_id)   # queset\_list类型,但是只有一个值    \[1,\]

        #没写完

        form=form_class.HostForm(

            initial={'hostname':obj.hostname,

                     'ecsname':obj.ecsname,

                     'cpu':obj.cpu,

                     'mem':obj.mem,

                     'speed':obj.speed,

                     'network':obj.network,

                     'source\_id':obj.source\_id,

                     'region\_id':obj.region\_id,

                     }

        )

        return render(request,'edit.html',locals())

删除

veiws.py

删除代码

class Del(View):

    def post(self,request,\*args,\*\*kwargs):

        pass

    def get(self,request,\*args,\*\*kwargs):

        get_id = int(request.GET.get('id'))

        # get_id=int(request.GET.get('id'))

        models.Host.objects.filter(id=get_id).delete()

        return redirect('host/list')

host\urls.py

代码

from django.conf.urls import url,include

from django.contrib import admin

from host import views

urlpatterns = \[

    url(r'list$', views.List.as_view()),

    url(r'add$', views.Add.as_view()),

    url(r'edit/(\\d+)/', views.Update.as_view()),

    url(r'del', views.Del.as_view()),

\]

转载于:https://my.oschina.net/u/3959701/blog/3084664

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值