python(06)实践Django-views

需求:监控jenkins中项目的构建,对已打标记的构建,做版本发布,并提交给实施部门,实施部门根据接收到的发布版本进行升级工作。
现状:
1)发布包没地方管,当前在各个测试人员的电脑上
2)已发布版本找不到SVN/Git上的对应的地址
3)不知道现网是哪个版本
4)不知道已发布的包情况(有没有升级,升级包质量好还是坏)
Model:
PCI:在管理中和jenkins关联的项目
PCI_BUILD: jenkins中项目的构建信息
PCI_RELEASE: 出包
ONLINE_VERSION: 现网版本管理
View:
实现基本的增删改查,异步查询项目在jenkins中的状态。
1)对jenkins中build状态为success--进行测试
2)对测试通过的build打tag
3)对有tag的build 进行出升级包
4)根据升级包进行升级并反馈结果
其中测试、出包、升级都是线下进行,当前只对结果的记录,后期在做自动。

在view阶段使用到的:

  1. 使用到TemplateView、CreateView、UpdateView、DetailView、ListView、FormMixin
    class PCIListView(TemplateView):
       template_name = 'devops/pci_list.html'      #指定跳转的页面
       model = PCI                                       #指定表
       context_object_name = 'PCI'            #上下文变量
        def get_context_data(self, **kwargs):#这个方法用来添加额外的内容到上下文变量中。如传递参数
         context = {
             'app': 'PCI',
             'action': 'PCI list',
         }
         kwargs.update(context)
         return super(PCIListView, self).get_context_data(**kwargs)
    
    而Listview比TemplateView多了一个get_queryset(self)
  1. 通过 def get(self, request, *args, **kwargs) 获取页面传递过来的参数

    pk_url_kwarg = 'pk'
    def get(self, request, *args, **kwargs):
        self.pk = pk = kwargs.get(self.pk_url_kwarg)
        self.pci = PCI.objects.get(id=pk)
        return super(PCIBuildsListView, self).get(request, *args, **kwargs)
    
  2. 通过 def get_context_data(self, **kwargs)将参数传递到下一个页面

     def get_context_data(self, **kwargs):
        context = {
            'app': 'pcibuild',
            'action': 'pcibuild list',
            'pk': self.pk
        } 
    

    页面上通过 {pk} 获取参数值

  3. 通过 def form_valid(self, form) 做填写字段合法性进行校验

  4. views_urls的编写

    urlpatterns = [
      url(r'^pci/$', views.PCIListView.as_view(), name='pci-list'),
      url(r'^pci/create/$', views.PCICreateView.as_view(), name='pci-create'),
      url(r'^pci/(?P<pk>[0-9]+)/update/$', views.PCIUpdateView.as_view(), name='pci-update'),
      url(r'^pci/(?P<pk>[0-9]+)/$', views.PCIDetailView.as_view(), name='pci-detail'),
    ]
    
  html上通过 <li><a href="{% url 'devops:pci-list' %}">构建</a></li>访问到列表页面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (一)、启动服务器 (二)、创建数据库表 或 更改数据库表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星阅读 5,731评论 0 17
  • Class-based views 官方推荐使用通用视图类 简单示例# models.pyfrom django....
    wangfp阅读 359评论 0 0
  • 关于JET是新式的Django管理界面并且增强了功能。 内容 文档 开始 安装django-jet 安装仪表盘...
    CNSumi阅读 7,942评论 2 15
  • Refer to: www.threemeal.com/blog/12/ 中间件 中间件是一个钩子框架,它们可以介...
    兰山小亭阅读 16,580评论 9 165
  • 在没有山穷水尽的时候,我们都不要去抱怨生活。 要么选择结束这糟糕的状态,要么选择苦中作乐。无休止的抱怨只会让人觉得...
    易氏十二阅读 249评论 0 0