标准目录规范
在学习模块和包之前,就已经写过了ATM和购物车的项目,但是当时我们没有学习模块和包,所以当时是所有的函数功能都写在一个.py文件当中,虽然实现了功能,但是当时就发现,在实际写代码时,过程非常的复杂,看起来比较乱,所以在学习模块和包以后呢,我们应该根据项目,应该分什么文件,分什么样的文件夹,那么在初期呢,我们有一个固定的文件结构,就是今天的要说的开发的标准目录规范。
配置文件
e.g. case : ATM
1 | # 此代码块用于表示我的目录 |
1 | # file: 'start.py' |
在case中,可以发现我们使用到了文件的路径,在之后的功能中,日志文件,或者数据文件等,我们会不止一次的使用到文件路径,那么我们每一次直接将路径写在代码中,效率是非常低的,不可取,因为这只是在我们自己的电脑上用时,路径是这样的,但是当移植到别人的电脑上时,路径就会发生改变,所以我们不可避免的会需要修改这些路径。
所以不要直接写在代码中,我们可以通过定义一个变量,然后在修改的时候只需要修改一次,其次,也简化了书写。
1 | # file: 'start.py' |
通常这类用于配置程序的变量,我们应该将它们都统一的放到单独的配置文件当中,不应该与我们的函数功能存放在一起。所以更好的做法是新建一个文件,将配置文件放进去。
1 | # 所以我们有了config这个文件夹,并在里边创建一个settings.py文件 |
公共模块
通常我们还会在很多时候,在进行关键操作之前需要进行验证,也就是说例如在atm功能中,在转账、提现、存款时,无论想要操作哪一步都需要先进行登陆验证,那么这时候这个验证功能的函数,就属于公共模块。
1 | # file: 'common.py' |
日志文件 log.txt 和 数据文件 db.txt
区分业务逻辑和启动代码
另外我们可以将程序的业务逻辑和启动代码,进行分离,创建一个start.py 和 将业务逻辑模块放入core文件夹中(e.g. ATM.py)
1 | # file: 'ATM.py' |
执行文件
最后start.py就是一个执行文件通常我们放在bin文件夹中,即使有多个执行文件,我们也可以将其统一到bin文件夹中。
定制程序的入口
为了给用户提供便利,我们程序的入口应该从core业务逻辑中转移到start.py文件中,所以我们需要将start.py中导入core下的ATM并执行start。
1 | # file:'start.py' |
很显然这样配置之后,我们以为导入了 ‘core’ 模块,但是运行结果很明确的告诉我们没有找到名字叫 ‘core’ 的模块,所以我们需要导入模块。
1 | # file: 'start.py' |
使用标准目录后
引用配置文件
在上述的case中,我们把文件的路径等配置文件,放在了 settings.py 文件中,那么我们在ATM中要使用这些配置文件,就需要导入config下的settings.py
1 | # file: 'ATM.py' |
引用自定义模块
为之前的功能添加日志功能
1 | # file: 'common.py' |