• Python之拆分目录


    • 成分目录的好习惯,使得代码保持整洁,为以后的代码管理提供方便。

    一、概念

    一般目录有以下几个:

    bin:程序入口,存放start文件。

    conf:存放固定的配置信息,比如:连接redis的配置信息、连接mysql的配置信息等。

    lib:存放main文件、tools文件等。

    logs:存放日志

    文件:

    start文件:程序运行开始。

    main文件:存放主逻辑。

    tools文件:存放常用工具,比如:db连接、检查小数、等等。

    二、引入自己文件夹下的模块

    使用from 文件夹名.文件名 import 模块名

    from conf.setting import mysql_info

    如果输入import后,没有提示框显示文件中的模块名,则随便选中一个模块名,然后按住Ctrl键,鼠标左键点击该模块名,就会跳转到点击的模块名所在的python文件中,鼠标放在python文件浏览页签上,pycharm会显示它的绝对路径:

    找到左侧路径的位置,将它所在的文件夹取消Source Root即可:

    再将想要引入的模块所在的文件夹Source Root,然后重新输入import,找到自己想要导入的模块名,选择即可。

     三、引入的模块内容是字典

    模块内容是字典,如下所示:

    #mysql的配置信息
    mysql_info={
        'host':'xxx.xxx.xxx.xxx',
        'port':3306,
        'user':'jxz',
        'password':'123456',
        'db':'jxz',
        'charset':'tuf8',
        'autocommit':True
    }

    引入该模块后,如何达到以下效果:

    def my_db(sql):
        conn=pymysql.connect(
            host='xxx.xxx.xxx.xxx',
            user='jxz',
            password='123456',
            db='jxz',
            charset='utf8',
            autocommit=True
        )
        cur=conn.cursor(cursor=pymysql.cursors.DictCursor)
        cur.execute(sql)
        res=cur.fetchall()
        cur.close()
        conn.close()
        return res

    只需将内容变为模块名,并在模块名前加两个星号即可:

    import pymysql
    from conf.setting import mysql_info
    
    def my_db(sql):
        conn=pymysql.connect(**mysql_info)
        cur=conn.cursor(cursor=pymysql.cursors.DictCursor)
        cur.execute(sql)
        res=cur.fetchall()
        cur.close()
        conn.close()
        return res

    加上两个星号之后,python会自动将字典里面的内容以k-v的方式转成k=v放到里面。

    四、python文件拆分

    当接口服务由多个人去完成时,就不能都在一个python文件里写了,这时就需要拆分python文件内容。由于函数都是绑定在server上的,因此可以将server服务单独放在一个python文件里,其余人在写不同的服务上,只需引入server即可:

    bin目录下存放程序入口——start程序:

    每天进步一点点,快乐生活多一点。
  • 相关阅读:
    python学习笔记十五-生成器
    python学习笔记十四-迭代器
    python学习笔记十三-装饰器
    The Zen of Python, by Tim Peters
    python学习笔记十二-函数
    python学习笔记十一-集合set
    tensorflow2 gpu 在 win10 上安装过程和问题处理
    anaconda navigator stuck 卡在 loading applications... 处理
    python工具pip加速For windows
    WCF With StructureMap
  • 原文地址:https://www.cnblogs.com/yiruliu/p/9982462.html
Copyright © 2020-2023  润新知