python web开发开源规范

Hello , 大家好。首先在五一假期给所有劳动者创造者们送上祝福,
本文聊聊我对python web开源相关的规范

PEP 8

Python编程风格指南:PEP 8是Python编程的官方风格指南,提供了关于代码格式、命名规范、注释等方面的建议。遵循PEP 8可以使代码更易于阅读和维护

https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide

环境

开发python版本

python -V

虚拟环境:

安装虚拟环境工具:

pip install virtualenv

创建虚拟环境,导航到希望创建虚拟环境的目录

virtualenv myenv

在当前目录下创建一个名为“myenv”的虚拟环境
激活虚拟环境

myenv\Scripts\activate

激活虚拟环境后,命令提示符中的前缀应显示为虚拟环境的名称,例如“(myenv)”。
退出虚拟环境:

deactivate

依赖文件

requirements.txt文件是一个项目的依赖文件,可以通过下面的方式自动生成:

进入虚拟环境,切换到项目根目录下,使用pip工具的freeze参数。

pip freeze > ./requirements.txt

打开requirements.txt文件,其内容如下:

在这里插入图片描述

他人如果拷贝了我们的代码,要安装第三方库依赖的话,只需要:

pip install -r requirements.txt

就可以一次性安装好所有的库

.gitignore文件

在项目代码中,有一些文件是不能上传的,比如密码文件、数据库文件、核心配置文件等等,还有一些是不用上传的,比如临时文件。为了让git自动忽略这些文件,我们需要创建一个忽略名单。

在Git项目中,我们可以使用.gitignore文件来指定需要忽略的文件和目录,在项目根目录下新建一个.gitignore文件

以下是一个简单的.gitignore文件示例,用于忽略密码文件、数据库文件、核心配置文件和临时文件:

# 忽略密码文件
*.pem
*.key
*.crt# 忽略数据库文件
*.db
*.sqlite# 忽略核心配置文件
config.yml
config.json# 忽略临时文件
*.tmp
*.bak

在这个示例中,我们使用通配符(*)来匹配特定类型的文件。例如,*.pem表示忽略所有扩展名为.pem的文件。我们还可以使用目录名来忽略整个目录,例如/logs表示忽略名为logs的目录及其所有内容。

在实际项目中,我们需要根据项目的具体需求来编写.gitignore文件。在添加、修改或删除.gitignore文件后,Git会自动更新忽略规则。如果需要忽略已经被跟踪的文件,可以使用git rm --cached <file>命令将其从Git跟踪列表中移除,但保留在本地文件系统中

特殊文件处理

对于settings.py文件这些,如果没有这个文件是无法运行Django项目的,但是settings中又可能包含很多关键的不可泄露的部分,比如SECRET_KEY等,
我的建议是在原文件或readme.md文件写入相关修改信息

说明文件(自述)

readme.md文件是项目的入口和门面,它有助于提高项目的可读性和可维护性。在实际项目中,我们需要根据项目的具体需求来编写README.md文件,以便让其他开发者更容易理解和使用项目。
在这里插入图片描述

# 项目名称简短的项目描述。
功能列表:使用无序列表(-)来列出项目的主要功能。这有助于让读者了解项目的核心价值和用途。
## 功能- 功能1:描述功能1的主要功能和用途。
- 功能2:描述功能2的主要功能和用途。
安装和配置:描述如何安装和配置项目,包括依赖库、环境变量等。这有助于让读者了解如何在本地环境中运行和测试项目。
## 安装描述如何安装和配置项目,包括依赖库、环境变量等。
使用说明:描述如何使用项目,包括API调用、命令行参数等。这有助于让读者了解如何使用项目的各种功能。
## 使用描述如何使用项目,包括API调用、命令行参数等。
示例:提供一些使用示例,以便读者更好地理解项目的用途和功能。这有助于让读者了解如何在实际项目中应用该项目。
## 示例提供一些使用示例,以便用户更好地理解项目的用途和功能。
贡献指南:描述如何为项目贡献代码、报告问题和提交请求。这有助于让读者了解如何参与项目的开发和维护。
## 贡献描述如何为项目贡献代码、报告问题和提交请求。
许可证信息:描述项目的许可证信息,如MIT、GPL等。这有助于让读者了解项目的版权和许可状况。
## 许可证描述项目的许可证信息,如MIT、GPL等。

许可证

GitHub支持的开源许可证有很多,如ApacheMITGPL、BSD、CC0、EPL、AGPL
这些许可证可以分为两大类:宽松式许可证Copyleft许可证

宽松式许可证

宽松式许可证保证了使用、修改和重新分发的自由,同时也允许创建专有的派生作品,但要求他们保留你的版权声明和许可证。这类许可证中,最简洁明了和最受欢迎的是MIT许可证。

Copyleft许可证

Copyleft许可证则要求在使用开源组件时,必须向他人开放你的代码。GPL许可证族是这类许可证中最早出现也是最流行的一种,包含许多版本和变种.

Linux的开源许可证有Apache许可证,MIT许可证,GNU通用公共许可证(GPL)等,这些许可证共同构成了Linux开源生态系统的基础,确保了Linux代码的自由使用和共享,同时也保护了开发者和贡献者的权益。

比如拿MIT举例

Copyright 2024 liheng

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
“Software”), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5663.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gateway结合Nacos使用!!!

一、本地结合使用 1. 引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 2. bootstarp.yml配置文件 如果Nacos中配置使用yaml格式&…

Dockerfile部署LNMP

目录 一、项目模拟 1. 项目环境 2. 服务器环境 3. 任务需求 二、Linux系统基础镜像 三、Nginx 1. 建立工作目录 2. 编写Dockerfile脚本 3. 准备nginx.conf配置文件 4. 生成镜像 5. 创建自定义网络 6. 启动镜像容器 7. 验证nginx 四、Mysql 1. 建立工作目录 2. …

19 做好微服务间依赖的治理和分布式事务

在前两讲里&#xff0c;分别从微服务的对外接口、消息消费以及微服务自身的相关编码规范上阐述了“防备上游、做好自己”这两个准则如何落地。 在本讲里&#xff0c;将会讲解为什么要“怀疑下游”&#xff0c;以及有哪些手段可以落地此条准则。此外&#xff0c;还会介绍在进行…

基于springboot实现迪迈手机商城设计系统项目【项目源码+论文说明】

基于springboot实现迪迈手机商城设计系统演示 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管理。…

Java面试重点之反射机制

一、 反射是什么&#xff1f; 允许程序在运行时查询和操作对象的类型信息。通过反射&#xff0c;程序能够在运行时获取对象的类定义信息&#xff0c;如类的名称、方法、字段、注解等&#xff0c;并且可以动态地调用对象的方法或访问其字段&#xff0c;而无需在编译时具体知道对…

编写你的第一个 golang 的应用程序

进行你的第一个golang的程序 当你把程序都安装好以后 环境变量配置 好 vscode 插件下载好以后 1. 创建一个test.go 的文件 //主包&#xff0c;可执行文件所在包 package main//导入包 import "fmt"//主函数&#xff0c;入口函数 func main() { }2.解释 需要导入包 …

WPF之border标签边框控件、设置弧度、图片

border标签在WPF中承担着边框的角色又称之为边框标签&#xff0c;使用嵌套的方法去给一些标签添加边框&#xff0c;border标签包裹目标标签(border不能有多个子元素)。一般在给标签添加弧度时可以使用border。 常用属性 CornerRadius边框拐角的弧度&#xff0c;当宽高是一样的…

Alibaba Cloud Linux 3.2104 LTS 64位安装mysql 8.0报错

问题描述 Alibaba Cloud Linux 3.2104 LTS 64位安装mysql 8.0提示 Error&#xff1a; GPG check FAILED 问题原因 官方 MySQL 存储库的 GPG 密钥已过期&#xff0c;无法安装或更新 MySQL 包 mysql官网也提交了该bug&#xff1a; https://bugs.mysql.com/bug.php?id106188 …

动态增删表格

期望目标&#xff1a;实现一个能通过按钮来动态增加表格栏&#xff0c;每次能添加一行&#xff0c;每行末尾有一个删减按钮。 <el-button type"text" class"primary"click"addMember()">添加</el-button> <el-table:data"m…

Pandas Series的运算原来这么简单

Series的运算主要包括加法、减法、乘法和除法等基本算术运算。这些运算通常是按照索引对应计算的&#xff0c;如果两个Series的索引不同&#xff0c;则结果中对应位置将填充为NaN&#xff08;空值&#xff09;。 需要注意的是&#xff0c;在进行Series运算时&#xff0c;需要确…

【linux】进程(深入理解linux进程状态)

开始之前先说一个与本文无关的小知识&#xff0c;chdir命令可以更改当前进程的工作目录哦。 目录 linux具体进程状态&#xff1a;R && S&#xff1a;T && t&#xff1a;D&#xff1a;僵尸进程 && 孤儿进程&#xff1a; OS的理论线&#xff1a;运行&…

讯饶科技 X2Modbus 敏感信息泄露

讯饶科技 X2Modbus 敏感信息泄露 文章目录 讯饶科技 X2Modbus 敏感信息泄露漏洞描述影响版本实现原理漏洞复现修复建议 漏洞描述 X2Modbus是一款功能很强大的协议转换网关&#xff0c; 这里的X代表各家不同 的通信协议&#xff0c;2是To的谐音表示转换&#xff0c;Modbus就是最…

Ps:应用智能锐化滤镜

智能锐化 Smart Sharpen滤镜具有“USM 锐化”滤镜所没有的锐化控制功能。不仅可以设置不同的锐化算法&#xff0c;还可以分别控制在阴影区域和高光区域中进行的锐化量。 ◆ ◆ ◆ 一般使用方法与步骤 1、根据模糊的原因选择“移去”算法&#xff0c;默认是“高斯模糊”。 2、…

制作场景资源的Prefab

制作骨骼模型的Prefab 现在游戏内的使用骨骼模型是通过老版的Animator去实现控制的&#xff0c;所以需要将模型切换为Animator 第一步&#xff0c;动画类型设置为Generic&#xff0c;创建Avatar 模型里面会有对应的Avatar文件 我们还需要一个Controller文件&#xff0c;用于…

Go 语言基础(二)【数组、切片、指针、map、struct】

1、数组 特别需要注意的是&#xff1a;在 Go 语言中&#xff0c;数组长度也是数组类型的一部分&#xff01;所以尽管元素类型相同但是长度不同的两个数组&#xff0c;它们的类型并不相同。 1.1、数组的初始化 1.1.1、通过初始化列表{}来设置值 var arr [3]int // int类型的数…

ArrayList知识点详解

目录 1.简介 2.ArrayList的使用 &#xff08;1&#xff09;如何实例化ArrayList&#xff1f;&#xff08;如何创建&#xff1f;&#xff09; &#xff08;2&#xff09;如何构造使用&#xff1f; &#xff08;3&#xff09;为什么ArrayList的无参构造可以添加数据 &#…

rust疑难杂症

rust疑难杂症解决 边碰到边记录&#xff0c;后续可能会逐步增加&#xff0c;备查 cargo build时碰到 Blocking waiting for file lock on package cache 原因是Cargo 无法获取对包缓存的文件锁&#xff0c; 有时vscode中项目比较多&#xff0c;如果其中某些库应用有问题&…

深入理解多层感知机MLP

1. 基础理论 神经网络基础&#xff1a; 目标&#xff1a;了解神经网络的结构&#xff0c;包括神经元、权重、偏置和激活函数。 神经网络是由多个层次的神经元组成的网络&#xff0c;它模拟了人脑处理信息的方式。每个神经元可以接收输入、处理输入并生成输出。这一过程涉及到…

c#数据库: 11.分组统计学生信息/ 12.视图查询

该例以学生信息表为例&#xff0c;将学生信息按年级和性别分组&#xff0c;统计各年级男生和女生的人数、总成绩和平均成绩&#xff0c;并将查询结果按平均成绩降序排列。下图是原数据表staq: 【C#实现过程】 &#xff08;1&#xff09;创建一个名为StudentGroup的窗体应用程序…

RK3588S和ARM阵列服务器在虚拟化云平台的应用

RK3588是瑞芯微2021年底推出的首款高端8nm旗舰芯片&#xff0c;而RK3588S 则是针对消费端市场在RK3588基础上缩减了部分外围接口&#xff0c;CPU、GPU和NPU等主要参数得到了保留&#xff0c;主要应用范围为高端ARM平板、ARM笔电产品&#xff0c;会议平板类、ARM服务器、智能机器…