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支持的开源许可证有很多,如Apache
、MIT
、GPL
、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.