我正在开发一个Python 3项目,涉及到数据的写入。现在,我希望用户能够选择数据写入的格式 - pickle、SQLite、PostgreSQL等。好在Python已经内置了pickle和sqlite支持,所以不用担心。但是其他的需要导入其他模块。
该项目包括以下内容(不必赘述): 一个名为
该项目包括以下内容(不必赘述): 一个名为
ProjectClass
的类,其中包含read
、write
等方法,用于将数据写入列、创建新列等。因此,当创建ProjectClass
类型的对象时,用户可以选择后端。from project import ProjectClass
instance = ProjectClass(backend='MySQL')
instance.write(column_name='column1', data=some_data)
后端处理所有的数据库操作(所以ProjectClass
与数据库无关)。
read
、write
和其他方法都调用backends.py
中的函数,它们调用的函数取决于在创建ProjectClass
实例时传递给它的后端类型。
现在,我不完全理解如何做到:
- 不要求用户为每个后端安装每个包(因为希望项目会越来越多地支持各种DB后端)
- 检查是否安装了必要的包(例如PostgreSQL需要
psycopg2
等)
我应该将后端分成每个数据库类型的单独文件,当用户创建ProjectType
实例时,尝试导入必要的文件(例如,对于PostgreSQL,导入postgresqlbackend.py
,对于MySQL,导入mysqlbackend.py
等),并查看导入是否失败(由于缺少<backendname>backend.py
文件中导入的包)?