热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:代码发布项目

篇首语:本文由编程笔记#小编为大家整理,主要介绍了代码发布项目相关的知识,希望对你有一定的参考价值。代码发布概述图

篇首语:本文由编程笔记#小编为大家整理,主要介绍了代码发布项目相关的知识,希望对你有一定的参考价值。



代码发布概述图

技术图片


如何解决当服务器特别多的时候,从同一个地方下载数据会出现压力过大的时刻(上传者只有一个,下载者却有很多歌,上传者压力太大)

采用比特流技术

将所有的人都变成既可以是上传者也可以是下载者


项目的概述:

利用modelform实现服务器表的增删改查

模板的基础作为模板的html文件上一般情况下,都应该定义在三个区域css区,html区和js区

针对服务器添加数据的功能,需要对提交的数据进行数据校验,还需要展示提示的信息,当模型字段非常多的时候前端页面展示代码量书写会很多,如何解决这样的问题?

‘‘‘
标签渲染
数据校验
信息展示
‘‘‘
这三者可以用modelform组件来做,会比form组件简单很多
class ServerModelForm(ModelForm):
class Meta:
model = models.Server
fields = "__all__"
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
# print(self.fields) # OrderedDict([(‘hostname‘, )])
# 给所有的字段加class属性
for k,field_obj in self.fields.items():
field_obj.widget.attrs[‘class‘] = ‘form-control‘
return redirect(‘/server/list/‘) # 可以写路径
return redirect(‘server_list‘) # 还可以写别名 但是如果出现有名无名分组的反向解析 则必须使用reverse方法

服务器管理

class Server(models.Model):
‘‘‘服务器表‘‘‘
hostname = models.CharField(verbose_name=‘主机名‘, max_length=64)

语言环境

django默认的语言环境是英文,但是它的内部其实支持多个国家的语言,只需要你自己手动配置即可

# LANGUAGE_CODE = ‘en-us‘
LANGUAGE_CODE = ‘zh-hans‘
# 如何查看django到底支持哪些语言环境
from django.conf import global_settings
LANGUAGES = [
(‘af‘, gettext_noop(‘Afrikaans‘)),
(‘ar‘, gettext_noop(‘Arabic‘)),
(‘ast‘, gettext_noop(‘Asturian‘)),
...
]

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



项目管理

class Project(models.Model):
"""项目表"""
title = models.CharField(verbose_name=‘项目名‘,max_length=64)
repo = models.CharField(verbose_name=‘仓库地址‘,max_length=128)

env_choices = (
(‘prod‘,‘正式‘),
(‘test‘,‘测试‘)
)
env = models.CharField(verbose_name=‘环境‘,max_length=16,choices=env_choices,default=‘test‘)

代码的优化



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



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



"""
什么是类?
类是对象公共的属性和技能的结合体
什么是父类?
父类是类公共的属性和技能的结合体
"""
# 父类
from django.forms import ModelForm
class BaseModelForm(ModelForm):
def __init__(self,*args,**kwargs):
super().__init__(*args,**kwargs)
# print(self.fields) # OrderedDict([(‘hostname‘, )])
# 给所有的字段加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‘, )])
# 给所有的字段加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=‘关联服务器‘)

项目展示页面额外展示当前两个字段


推荐阅读
  • 本文深入探讨了Windows操作系统中线程同步机制的关键技术,重点分析了`WaitForSingleObject`和`Event`的使用方法及其应用场景。通过详细介绍`CreateEvent`函数的创建过程及其在判断线程退出和实现线程间同步中的重要作用,结合具体实例,展示了如何高效地利用这些工具来解决多线程编程中的常见问题。此外,文章还讨论了这些机制在实际开发中的最佳实践和注意事项,为开发者提供了宝贵的参考。 ... [详细]
  • 综合实训 201521440015
    Chinesepeople’publicsecurityuniversity网络对抗技术实验报告实验五综合渗透学生姓名常泽远年级15区队4指导教师高见信息技术与网络安全学院2018 ... [详细]
  • 在 Linux 环境下,深入探讨 GTK+3.0 的高级开发技巧,涵盖组件定制、事件处理及多线程应用等核心内容,帮助开发者提升应用界面的交互性和性能。 ... [详细]
  • 在处理大文件上传时,服务端为何无法直接接收?这主要与 PHP 配置文件 `php.ini` 中的几个关键参数有关,如 `upload_max_filesize` 和 `post_max_size`。这些参数分别限制了单个文件的最大上传大小和整个 POST 请求的数据量。为了实现大文件的高效上传,可以通过文件分割与分片上传的方法来解决。本文将详细介绍这一实现方法,并提供相应的代码示例,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 通过Apache Commons FileUpload组件,可以根据具体应用需求实现多样化的文件上传功能。在基本应用场景中,开发者可以通过调用单一方法来解析Servlet请求,从而轻松处理文件上传任务。此外,该组件还提供了丰富的配置选项和高级功能,支持大文件上传、多文件并发处理等复杂场景,显著提升了文件上传的效率和可靠性。 ... [详细]
  • 本文详细探讨了Struts框架中几种常用的数据标签,包括`s:property`、`s:a`、`s:debug`、`s:include`和`s:param`。这些标签在实际开发中的应用广泛,不仅用于数据展示和链接生成,还提供了调试和模块化功能。文章分析了每个标签的基本用法及其属性配置,并结合具体示例介绍了如何进行性能优化和最佳实践。通过这些内容,开发者可以更好地理解和利用这些标签,提高开发效率和代码质量。 ... [详细]
  • 后端开发|php教程numbering,addClass,COOKIE,POST,instanceof后端开发-php教程一:php变量商场项目源码,ubuntu安装其他系统,to ... [详细]
  • 用jqueryuploadify上传文件的时候,为什么文件大小超过30MB就不行了?我已经修改了最大文件限制sizeLimit:209715200,200MB,也修改了web.co ... [详细]
  • Matplotlib在数据科学中的可视化应用与技术解析
    Matplotlib和数据可视化 数据的处理、分析和可视化已经成为Python近年来最为重要的应用领域之一,其中数据的可视化指的是将数据呈现为漂亮的统计图表ÿ ... [详细]
  • 一、遇到问题javamd5的输出结果和phpmd5的输出结果不 ... [详细]
  • 本文实例讲述了Android调用手机拍照功能的方法。分享给大家供大家参考。具体如下:一、main.xml布局文件:android:orientation ... [详细]
  • php如何留登录后门(2023年最新解答)
    导读:今天编程笔记来给各位分享关于php如何留登录后门的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • [ 原创 ]新手作品简单版音乐播放器
    为了完成别人交给的小任务,作为一个新手看了很多的视频教程,实在是难死宝宝了,好在终于找到一篇合适我的布局的关于音乐播放器布局的文章 ... [详细]
  • Android数组截取技巧及JNI数组交互在仓库构建中的应用分析
    在Android开发中,数组截取技巧和JNI数组交互在仓库构建中的应用具有重要意义。JNI提供了两种主要的数组处理方法:一是生成原生层数组的副本,二是直接通过数组指针进行操作。在进行字符串处理时,如果需要执行其他复杂操作,可以结合这两种方法以提高效率和灵活性。此外,合理利用这些技术可以显著提升应用程序的性能和稳定性。 ... [详细]
  • 如何在SharePoint 2013中使用不同用户身份进行登录操作
    在创建了SharePoint 2013网站后,我注意到其界面与2010版本有所不同,特别是缺少了“以其他用户身份登录”的功能,这对测试工作造成了不便。通过查阅一些国外的技术资源,最终找到了有效的解决方案。这一方法不仅解决了登录问题,还提升了多用户环境下的测试效率和安全性。 ... [详细]
author-avatar
mobiledu2502916573
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有