• 代码的优化


    代码的优化

    代码的优化一定是在你把功能实现之后再去优化(先努力实现再考虑优化)

    • 将所有的modelform单独抽取出来

    • 将modelform类中所有公共的部分抽取出来形成基类

      """
      什么是类?
      	类是对象公共的属性和技能的结合体
      什么是父类?
      	父类是类公共的属性和技能的结合体
      """
      # 父类
      from django.forms import ModelForm
      
      
      class BaseModelForm(ModelForm):
          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'
                  
                  
                  
      # 子类
      from app01.myforms.base import BaseModelForm
      from app01 import models
      
      
      class ServerModelForm(BaseModelForm):
          class Meta:
              model = models.Server
              fields = "__all__"
      
    • 当模型表字段特别多的时候,并且并不是所有的字段都需要展示到前端给用户观看

      from django.forms import ModelForm
      
      
      class BaseModelForm(ModelForm):
          # 自定义字段是否需要加额外属性的配置
          exclude_bootstrap = []
      
          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():
                  if k in self.exclude_bootstrap:
                      continue  # 排除在外不添加样式
                  field_obj.widget.attrs['class'] = 'form-control'
      
    • 项目表需要额外添加字段

          # 线上服务器地址
          path = models.CharField(verbose_name='线上地址',max_length=64)
          # 关联服务器
          """
          一个项目可以跑在多个服务器上
          一个服务器其实也可以跑多个项目 (公司服务器不够的时候 可以混用)
          """
          servers = models.ManyToManyField(to='Server',verbose_name='关联服务器')
      
    • 项目展示页面额外展示当前两个字段

  • 相关阅读:
    DokuWiki用storage的模式在sae上部署后速度太慢
    让禅道也可以玩BearyChat
    探讨c#中的unchecked是什么意思,起什么作用?
    重温Java的类加载机制
    JVM原理和优化
    为什么使用Redis
    高性能Web服务器Nginx及相关新技术的应用实践-张宴
    潘加宇--领域驱动设计和利润
    程序员跳槽全攻略
    EA强大的画图工具---设计数据库表格
  • 原文地址:https://www.cnblogs.com/yafeng666/p/12710497.html
Copyright © 2020-2023  润新知