python web开发开源规范

news2024/11/17 9:36:22

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.coloradmin.cn/o/1637661.html

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

相关文章

Spring Data JPA数据批量插入、批量更新真的用对了吗

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 前言 在前两篇文章已经介绍过&#xff0c;在使用Spring Data JPA时&#xff0c;DAO层的Respository通过继承J…

【PHP】安装指定版本Composer

1、下载指定版本composer.phar文件&#xff1a;https://github.com/composer/composer/releases 2、将下载的文件添加到全局路径&#xff1a; sudo mv composer.phar /usr/local/bin/composer 3、赋予权限&#xff1a; sudo chmod x /usr/local/bin/composer 4、查看compos…

Android 文件传输

经常写adb命令传文件&#xff0c;结果发现Android studio有自带的文件管理器&#xff0c;可以上传下载文件。

模型剪枝-Network Slimming算法分析

代码见文末 论文地址&#xff1a;Learning Efficient Convolutional Networks through Network Slimming ICCV 2017 Open Access Repository 1.概述 由于边缘设备的限制&#xff0c;在模型的部署中经常受到模型大小、运行内存、计算量的限制。之前的方法要么只能解决其中一个…

hdc不是内部或外部命令,也不是可运行的程序或批处理文件。【鸿蒙报错已解决】

文章目录 项目场景:问题描述原因分析:解决方案:此Bug解决方案总结Bug解决方案寄语项目场景: 最近遇到了这个问题,看到网上也有人在询问这个问题,实操了很多网上的解决方案发现并不能解决这个Bug,所以我在解决这个问题后,总结了自己和其他人的解决经验,进行了整理,写…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

2024年五一杯高校数学建模竞赛(A题)|钢板切割问题 | 建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;通过路径优化解决钢板切割问题。结合贪心算法&#xff0c;Floyd-Warshall等多元算法…

【开发技巧 | 第一篇】Typora快捷键方式给字体添加颜色

文章目录 1.Typora快捷键方式给字体添加颜色1.1下载并安装AutoHotkey1.2新建ahk脚本文件1.3运行ahk脚本文件1.4小结 1.Typora快捷键方式给字体添加颜色 1.1下载并安装AutoHotkey 点击下载: https://autohotkey.com/download/ahk-install.exe下载安装包&#xff0c;执行安装&a…

数据结构算法——链表带环问题——数学深度解析

前言:本节内容主要是讲解链表的两个问题 &#xff1a;1、判断链表是否带环&#xff1b; 2、一个链表有环&#xff0c; 找到环的入口点。 本节内容适合正在学习链表或者链表基础薄弱的友友们哦。 我们先将问题抛出来&#xff0c;友友们可以自己去力扣或者牛客网去找相应题目&…

STM32 F103C8T6学习笔记17:类IIC通信—MLX90614红外非接触温度计

今日学习配置MLX90614红外非接触温度计 与 STM32 F103C8T6 单片机的通信 文章提供测试代码讲解、完整工程下载、测试效果图 本文需要用到的大概基础知识&#xff1a;1.3寸OLED配置通信显示、IIC通信、 定时器配置使用 这里就只贴出我的 OLED驱动方面的网址链接了&#xff1a…

线上线下收银一体化,新零售POS系统引领连锁门店数字化转型-亿发

在市场竞争日益激烈的背景下&#xff0c;没有哪个商家能够永远屹立不倒。随着互联网技术的快速发展&#xff0c;传统的线下门店面临着来自电商和新零售的新型挑战。实体零售和传统电商都需要进行变革&#xff0c;都需要实现线上线下的融合。 传统零售在客户消费之后就与商家失…

群晖Docker部署Java jar包

安装群晖Docker组件Container Manager 打开组件,找到注册表搜索java,安装java映像 安装完成后会在映像目录里展示出来,点击运行 常规设置按需配置即可 这里要设置一个文件夹目录给这个容器来使用 一般来说给个/root来用就够了 设置完成后可以在容器目录里看到容器已经运行起来了…

判断循环链表以及其环入口

文章目录 题目题目链接题目要求 解题思路方法一&#xff1a;哈希表方法二&#xff1a;双指针 进阶思考快指针一次走三步 进阶问题&#xff08;入口点&#xff09;题目链接题目要求问题思路 总结 题目 题目链接 环形链表 题目要求 解题思路 显而易见的是&#xff0c;单纯的遍…

可靠的Mac照片恢复解决方案

当您在搜索引擎搜索中输入“Mac照片恢复”时&#xff0c;您将获得数以万计的结果。有很多Mac照片恢复解决方案声称他们可以在Mac OS下恢复丢失的照片。但是&#xff0c;并非互联网上的所有Mac照片恢复解决方案都可以解决您的照片丢失问题。而且您不应该花太多时间寻找可靠的Mac…

uniapp 对接 Apple 登录

由于苹果要求App使用第三方登录必须要求接入Apple登录 不然审核不过 所以&#xff1a; 一、勾选苹果登录 二、 设置AppId Sign In Apple 设置完成重新生成描述文件 &#xff01;&#xff01;&#xff01;&#xff01;证书没关系 示例代码&#xff1a; async appleLogin…

2024年最新省市县三级行政区划数据(审图号:GS(2024)0650号)

2024年省、市、县三级行政区划数据由国家基础地理信息中心发布&#xff0c;通过《2024版国家地理信息公共服务平台&#xff08;天地图&#xff09;》正式对外提供。这份数据涵盖了最新的省市县三级行政区划信息&#xff0c;更新于2024年1月&#xff0c;提供了详细的矢量数据下载…

食谱管理和餐饮计划应用Mealie

放假除了休闲娱乐&#xff0c;也不能忘了美食 什么是 Mealie &#xff1f; Mealie 是一个自托管的食谱管理和餐饮计划应用&#xff0c;具有 RestAPI 后端和基于 Vue 构建的响应式前端应用&#xff0c;为整个家庭提供愉快的用户体验。通过提供 URL&#xff0c;您可以轻松将食谱…

知识产权 | 守护科技创新之光,共筑知识产权长城

2024年4月26日&#xff0c;迎来了一年一度的世界知识产权日&#xff0c;今年的主题是&#xff1a;“立足创新创造&#xff0c;构建共同未来。” 易我科技是一家专注于数据安全产品研发、生产、销售、服务一体化的高新技术软件企业。易我科技自成立以来&#xff0c;始终秉持尊重…

贝叶斯回归

1. 贝叶斯推断的定义 简单来说&#xff0c;贝叶斯推断 (Bayesian inference) 就是结合“经验 (先验)”和“实践 (样本)”&#xff0c;得出“结论 (后 验)”。 2. 什么是先验&#xff1f; 贝叶斯推断把模型参数看作随机变量。在得到样本之前&#xff0c;根据主观经验和既有知…

微视网媒:引领新媒体时代的视觉先锋

在信息爆炸的时代&#xff0c;内容消费的方式日新月异&#xff0c;而“微视网媒”正是这场媒体变革中的佼佼者。凭借其独特的视角、精湛的制作和广泛的传播渠道&#xff0c;微视网媒不仅改变了人们获取信息的方式&#xff0c;更在不断地塑造着未来的媒体生态。 一、创新内容&am…