【发布时间】:2019-01-14 00:46:50
【问题描述】:
我正在潜入 Python 世界,通过为我的 dvd 收藏编写一个简单的基于库存的应用程序来练习,以此来熟悉使用 sqlite3。
作为我项目的一部分,我使用一个 ini 文件进行设置,然后从另一个文件调用的共享库中读取该值。我很好奇对我的方法的反馈,尤其是我对配置文件的使用,以及围绕它的最佳编码实践。
配置格式如下,命名为config.ini
[main]
appversion = 0.1.0
datasource = data\database.db
然后我的 utils 库的格式如下:
import os
import sqlite3
from configparser import ConfigParser
CONFIG_PATH = os.path.join(os.path.dirname(__file__), 'config/config.ini')
def get_settings(config_path=CONFIG_PATH):
config = ConfigParser()
config.read(config_path)
return config
def db_connect():
config = get_settings()
con = sqlite3.connect(config.get('main', 'datasource'))
return con
最后,我的测试查找功能是:
from utils import db_connect
def asset_lookup():
con = db_connect()
cur = con.cursor()
cur.execute("SELECT * FROM dvd")
results = cur.fetchall()
for row in results:
print(row)
我最大的问题是关于我从 utils.py 中构建数据连接的问题。首先我正在读取文件,然后在同一个脚本中形成,从 ini 文件中的设置建立数据连接。然后由其他文件读取。这是我尝试模块化的方法,但我不确定它是否合适。
提前致谢。
【问题讨论】:
-
这里有问题吗?
-
简短回答,您不应多次阅读
config.ini。config应该是一个全局对象。通常,我们有一个名为config.py的拆分文件,我们from config import config以全局使用配置对象。
标签: python python-3.x sqlite ini