zoukankan      html  css  js  c++  java
  • 代码发布服务器管理

    
    #### 服务器相关逻辑
    
    from django.shortcuts import render, HttpResponse, redirect, reverse
    from app01 import models
    from django.http import JsonResponse
    from app01.myforms.server import ServerModelForm
    
    
    """
    标签渲染
    数据校验
    信息展示
    
    forms组件的功能
    modelform组件也可以完成上面的三个要求,并且功能更加的强大简单
    """
    class ServerModelForm(ModelForm):
        class Meta:
            model = models.Server
            fields = "__all__"
    
    
        def __init__(self,*args,**kwargs):
            super().__init__(*args,**kwargs)
            # print(self.fields)  # OrderedDict([('hostname', <django.forms.fields.CharField object at 0x10c99c198>)])
            # 给所有的字段加class属性
            for k,field_obj in self.fields.items():
                field_obj.widget.attrs['class'] = 'form-control'
    
    
    # 查
    def server_list(request):
        # 获取服务器所有的数据展示到前端页面
        server_queryset = models.Server.objects.all()
        return render(request, 'server_list.html', locals())
    
    
    # 增
    def server_add(request):
        # 1、先实例化modelform的额空对象
        form_obj = ServerModelForm()
        if request.method == 'POST':
            # 3、校验数据
            form_obj = ServerModelForm(data=request.POST)
            # 4、判断是否合法
            if form_obj.is_valid():
                form_obj.save()
                # 跳转到服务器的展示页
                # return redirect('/server/list/')  # 可以写路径
                return redirect('server_list')  # 可以写别名,但是如果出现有名无名分组的反向解析,还是得使用reverse
        # 2、将该对象传给HTML文件
        return render(request, 'form.html', locals())
    
    # 改
    def server_edit(request, edit_id):
        edit_obj = models.Server.objects.filter(pk=edit_id).first()
        """
        将对象传递给html页面,然后展示对象的所有信息
        由于添加页面和编辑页面其实是一模一样的,所以我们直接用同一个页面
        """
        # 1、生成一个待编辑的modelform对象
        form_obj = ServerModelForm(instance=edit_obj)
        if request.method == 'POST':
            # 如果不把instance=obj加上那就是新增了
            form_obj = ServerModelForm(data=request.POST, instance=edit_obj)
            if form_obj.is_valid():
                form_obj.save()  # 编辑操作
                return redirect('server_list')
        return render(request, 'form.html', locals())
    
    # 删
    def server_delete(request, delete_id):
        """真正的删除应该只是修改字段,但是我们这里就直接删除了"""
        models.Server.objects.filter(pk=delete_id).delete()
        return JsonResponse({'statue':True})
    

    针对删除功能,我们想做一个二次确认的过程(ajax结合sweetalert实现二次确认弹框)

    <script>
            function removeData(ths,sid) {
                var res = confirm('你缺点要删除吗?');
                {#alert(res)  //  布尔值#}
                if (res){
                    // 朝后端发送删除数据的请求
                    $.ajax({
                        url:'/server/delete/' + sid + '/',
                        type:'get',
                        success:function (args) {
                            // 删除成功之后 页面应该立刻展示删除之后的效果
                            // 1 直接刷新  不太好  设计到分页的情况不太好
                            {#window.location.reload()#}
                            if (args.status){
                                // 2 利用DOM操作实时删除
                                $(ths).parent().parent().remove()
                            }
                        }
                    })
                }
            }
        </script>
    
  • 相关阅读:
    iOS 证书错误 Certificates下面的 App Store and Ad Hoc是灰的?? 点不了
    iOS 发布证书错误 Your build settings specify a provisioning profile with the UUID, no provisioning profile was found
    不能修改“System Roots”钥匙串 即下载的.cer 文件添加不到钥匙串
    修改 “嗨加游-Prefix.pch” 或者 “嗨加游-Info.plist ” 方法
    Java基础1(2015-8-2)
    认识modernizr----前端
    VS2013的C#项目与SQL Server2012无法连接的问题
    安装完SQL Server 2012后,由Windows身份验证设置为混合型的身份验证
    C#项目,在controller文件夹右击鼠标没有“添加控制器”的问题
    复制已存在的数据库结构(不包括库中的数据)
  • 原文地址:https://www.cnblogs.com/yafeng666/p/12710487.html
Copyright © 2011-2022 走看看