• 开发目录的规范


    标准目录的规范

    我们学习了模块和包之后,为了更好的管理自己的代码就需要将自己的代码分为文件,在分文件夹来管理。有一种普遍规定的规范吗?这就是开发目录规范。

    开服目录规范的基本文件结构:

    bin 文件夹下为执行文件

    core 文件夹下为主逻辑代码内容

    conf 文件夹下为配置文件

    lib 文件夹下为自定义模块(包)

    db文件夹为数据文件

    log 文件夹下为日志文件

    readme 软件介绍文件

    上诉文件夹是普通文件夹

    包的本质就是文件夹,所以在Python项目中有__init__文件的就是包

    init文件的作用是为了集中所有功能让外界方便调用。

    bin文件夹下执行文件,那么不能为包。

    conf文件夹是软件的配置信息,比如mysql,oracle,他们明显不是需要一同调用的,所以不用写init文件。

    core业务逻辑代码,这其中一定有一个用户的入口,用户进入以后只是在这些不同的业务中来回执行操作,所以这个文件下的模块是相互调用的关系,不需要集合功能给外界调用。

    db,lib,log逻辑上更上诉结论相似。

    总结:项目的标准结构的第一层仅仅是文件不是包。

    如何在执行文件调用项目结构中所有的文件

    执行文件需要从core文件下调用主逻辑代码。主逻辑代码需要调用日志,配置,数据,公共模块等。

    可是依照模块的查找顺序,内存已存在的模块——>内置的模块——>sys.path中的路径。

    显然上诉模块无法被读取。所以需要将sys.path中添加可以查找导入所有文件的路径。

    请在执行文件中书写上诉代码

    import sys,os
    #导入sys模块添加将路径添加到sys。path中去,
    #os模块,获取相应的文件路径
    BASE_DIR=os.path.dirname(os.path.dirname(__file__)))
    #__file__可执行文件的路径
    #os.path.dirname()返回当前文件或文件夹的上级文件夹
    #BASE_DIR就是这个开发软件的根目录
    sys.path.append(BASE_DIR)

    那么导入模块和使用模块的方法

    import core.src
    core.src.run()

    主逻辑文件中导入配置文件

    from conf import settings
    def login():
        with open(settings.DB_PATH) as f:
            print(f.read())

    在lib下的common中

    #配置文件获取 日志路径
    from conf import setting
    #日志功能
    def logger(msg):
        with open(setting.LOG_PATH,‘a’,encoding= 'utf-8') as f:
            f.write(msg)

    主逻辑代码导入模块

  • 相关阅读:
    DDD之3实体和值对象
    DDD之2领域概念
    DDD之1微服务设计为什么选择DDD
    SOFA入门
    COLA的扩展性使用和源码研究
    kafka可插拔增强如何实现?
    请设计一个核心功能稳定适合二开扩展的软件系统
    如何保证kafka消息不丢失
    kafka高吞吐量之消息压缩
    kafka消息分区机制原理
  • 原文地址:https://www.cnblogs.com/msj513/p/9791788.html
Copyright © 2020-2023  润新知