目录
规范化目录
将代码进行分类的优点:加载快、可读性高、查询修改简单。
1. 划归固定的路径:
统一相同的路径,也就是统一相同的变量,代码中如果需要这个路径时,直接引用即可,可以多次引用。
2. 划分文件
2.1 seetings 配置文件
setting.py文件:存放静态路径、变量、数据库的链接、配置文件、静态文件等,一般只是引用、不改变。
存放在conf文件夹。
2.2 common 公共组件文件
common.py公共组件文件,放置一些公用的函数、功能,以便其他主逻辑或者业务需求。
存放在lib文件夹。
2.3 src 主文件
src.py主文件,放置主逻辑函数、核心函数、以及可以直接体现、贯穿整个项目的主要功能。
存放在core文件夹。
2.4 starts 项目启动文件
starts.py项目启动文件,便于启动项目的功能,单独放置一个文件中,为了显眼、操作方便。
存放在bin文件夹。
2.5 类似register文件
register文件可存放用户信息、数据等相关的多个文件。
存放在db文件夹。
2.6 logging 日志文件
日志文件可供开发、运维人员使用,可以记录用户干了什么。
存放在log文件夹。
3. 划分项目目录
"项目目录结构"其实也是属于"可读性和可维护性"的范畴,我们设计一个层次清晰的目录结构,就是为了达到以下两点:
1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。
2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。
基本项目的目录结构:
blog是整个项目文件,在最后加入 README(说明书)文件,这就是一个较好的目录结构。
4. 项目启动文件编写
4.1 sys模块
sys模块内置模块,文件运行时,sys内置模块就会将一些模块自动加载到内存(内置模块、time,json pickle等以及当前目录下的。
如何引用到一个模块最本质的原因在于这个模块名称空间在不在内存.
如果不能直接引用一个模块,其必定不是内置或者当前目录下的py文件。所以,我们要手动将其添加到内存。
sys.path.append()就是手动的将一些模块添加到内存,添加完毕之后,就可以直接引用了.
4.2 starts.py示例
# 为了便于路径查询导入,因此一般在项目的starts.py文件中,将整个项目路径导入。
import os
import sys
BASE_PASH = os.path.dirname(os.path.dirname(__file__))
# 找到当前文件的父父级,也就是整个项目文件夹(blog)
sys.path.append(BASE_PASH)
from core.src import run
if __name__ == '__main__': # 可以防止其他人导入
run() # 启动主文件函数