python web开发开源规范

news/2024/5/19 2:13:07

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.mrgr.cn/p/24731375

相关文章

使用 Python 和 OpenCV 进行实时目标检测的详解

使用到的模型文件我已经上传了&#xff0c;但是不知道能否通过审核&#xff0c;无法通过审核的话&#xff0c;就只能 靠大家自己发挥实力了&#xff0c;^_^ 目录 简介 代码介绍 代码拆解讲解 1.首先&#xff0c;让我们导入需要用到的库&#xff1a; 2.然后&#xff0c;设…

讯飞听见软件介绍

讯飞听见是一款智能语音转文字软件,具有以下功能: • 实时语音转文字:支持录音实时转文字,准确率较高,且能自动区分角色和分段。 • 实时翻译:提供 8 国语种随时互译。 • 边录边拍:可以在录音的同时拍照记录,方便重点标记。 • 悬浮字幕:支持在观看视频时实时显示悬浮…

连接HiveMQ代理器实现MQTT协议传输

先下载MQTTX: MQTTX: Your All-in-one MQTT Client Toolbox 使用线上免费的MQTTX BROKER:The Free Global Public MQTT Broker | Try Now | EMQ 打开MQTTX&#xff0c;创建连接&#xff0c;点击NEW SUBSCRIPTION,创建一个主题&#xff0c;这里使用test/topic,在下面Json中填写…

Java线程与多线程

Java线程与多线程 一、Java线程相关概念1、程序、进程、线程、多线程2、串行、并行、并发3、多线程的特点及目的4、并发的三大特性5、同步、异步6、多线程技术使用场景7、线程安全与非线程安全8、立即加载与延迟加载9、公平锁与非公平锁 二、创建线程方法1、通过继承Thread类创…

2021-10-21 51单片机两位数码管显示0-99循环

缘由单片机两位数码管显示0-99循环-编程语言-CSDN问答 #include "REG52.h" #include<intrins.h> sbit K1 P3^0; sbit K2 P3^1; sbit K3 P3^2; sbit K4 P3^3; sbit bpP3^4; bit k1,wk10,wk20; unsigned char code SmZiFu[]{63,6,91,79,102,109,125,7,127,1…

链表经典算法OJ题目(2)

1.寻找链表的中间节点 题目链接&#xff1a;876. 链表的中间结点 - 力扣&#xff08;LeetCode&#xff09; 我们来直接介绍一个思路&#xff1a;快慢指针 快慢指针是指我们创建创建2个指针&#xff0c;一个为快指针&#xff0c;一个为慢指针&#xff0c;且快指针一次走的步数…

关于使用MyBatis-Plus 报错:java.sql.SQLSyntaxErrorException: Table ssm_db.book doesnt exist 的解决方案

问题描述解决方案 在yml文件中插入以下配置 mybatis-plus:global-config:db-config:table-prefix: tbl_

浅析扩散模型与图像生成【应用篇】(二十)——TiNO-Edit

20. TiNO-Edit: Timestep and Noise Optimization for Robust Diffusion-Based Image Editing 该文通过对扩散模型中添加噪声的时刻 t k t_k tk​和噪声 N N N进行优化&#xff0c;提升SD等文生图模型的图像编辑效果。作者指出现有的方法为了提升文生图模型的图像编辑质量&…

快速入门一篇搞定RocketMq-实现微服务实战落地

1、RocketMq介绍 RocketMQ起源于阿里巴巴,最初是为了解决邮件系统的高可靠性和高性能而设计的。在2016年开源分布式消息中间件,并逐渐成为Apache顶级项目。现在是Apache的一个顶级项目,在阿里内部使用非常广泛,已经经过了"双11"这种万亿级的消息流转,性能稳定、…

Apache Shiro 721反序列化漏洞Padding Oracle Attack

Shiro721序列化是利用已登录用户的合法RememberMe Cookie值,然后从密码学的角度来攻击,构造Pyload。目录漏洞原理复现修复方式 漏洞原理 Shiro 的RememberMe Cookie使用的是 AES-128-CBC 模式加密。其中 128 表示密钥长度为128位,CBC 代表Cipher Block Chaining,这种AES算法…

STM32G474 CMAKE VSCODE 开发环境搭建

本篇博文尝试搭建 stm32g474 的开发环境 一. 工具安装 1. 关于 MinGW、OpenOCD、Zadig 这些工具的下载和安装见 JlinkOpenOCDSTM32 Vscode 下载和调试环境搭建_vscode openocd stm32 jlink-CSDN博客 2. 导出一个 STM32 的 CMAKE 工程&#xff0c;这里略过。 3. 安装 ninja …

Camunda User Task:Task Listeners

代码实现:@Component("testTaskListener") public class UserTaskListener implements TaskListener {@Overridepublic void notify(DelegateTask delegateTask) {} }

支付宝支付流程

第一步前端&#xff1a;点击去结算&#xff0c;前端将商品的信息传递给后端&#xff0c;后端返回一个商品的订单号给到前端&#xff0c;前端将商品的订单号进行存储。 对应的前端代码&#xff1a;然后再跳转到支付页面 // 第一步 点击去结算 然后生成一个订单号 // 将选中的商…

Camunda 流程执行错误处理ERROR BOUNDARY EVENT

ERROR BOUNDARY EVENT:在任务发生异常时候会触发走,在代码中必须显式抛出throw new BpmnError("error.....");public void execute(DelegateExecution delegateExecution) throws Exception {System.out.println("进来了>>>>>>>>>…

ZooKeeper知识点总结及分布式锁实现

最初接触ZooKeeper是之前的一个公司的微服务项目中&#xff0c;涉及到Dubbo和ZooKeeper&#xff0c;ZooKeeper作为微服务的注册和配置中心。好了&#xff0c;开始介绍ZooKeeper了。 目录 1.ZooKeeper的基本概念 2.ZooKeeper的节点&#xff08;ZNode&#xff09; 3. ZooKeep…

Redis基础篇笔记

一、Redis入门 1.认识NoSQL 1.1 什么是NoSQLNoSQL最常见的解释是"non-relational", 很多人也说它是"Not Only SQL" NoSQL仅仅是一个概念,泛指非关系型的数据库 区别于关系数据库,它们不保证关系数据的ACID特性 NoSQL是一项全新的数据库革命性运动,提倡…

基于WOA优化的CNN-GRU-Attention的时间序列回归预测matlab仿真

1.算法运行效果图预览 woa优化前woa优化后 2.算法运行软件版本 matlab2022a3.算法理论概述时间序列回归预测是数据分析的重要领域,旨在根据历史数据预测未来时刻的数值。近年来,深度学习模型如卷积神经网络(Convolutional Neural Network, CNN)、GRU以及注意力机制(Atten…

文字转语音软件下载教程

文字转语音软件下载教程 一&#xff0c;Whisper下载二&#xff0c;ggml-medium语言模型下载三&#xff0c;导入模型下载四&#xff0c;使用方法 一&#xff0c;Whisper下载 网址&#xff1a;https://bittly.cc/uL9xs 下拉选择&#xff1a; 进入下载页面&#xff0c;下载Whis…

xLua背包实践

准备工作 环境&#xff0c;代码 在C#代码方面我们需要准备单例模式基类&#xff0c;AB包管理器&#xff0c;lua解析器管理器 详情请见AB包管理器 xlua详解 然后是Xlua包和AB包&#xff0c;具体导入方法也在上面的链接中 然后是lua的三个文件 具体代码&#xff1a; JsonUtil…

Vue的项目启动指令分析

通过Vue CLI脚手架创建的项目&#xff0c;默认的启动项目方式是 npm run serve 这里的serve是可以修改的。 在创建的项目目录中&#xff0c;找到package.json 双击打开&#xff0c;找到scripts部分 在scripts部分&#xff0c;有一个"serve"键值对&#xff0c;这里的…