在Python中模拟关系数据(或数据库)?

时间:2012-01-12 18:06:53

标签: python data-structures relational-database

我经常使用Python来为其他平台创建原型,这是各种各样的便笺簿。现在我想在数据库中使用与关系数据相关的一些想法。

在Python中表示数据库的最佳方法是什么?一组元组?使用像SQLite这样的模块?

我正在寻找Python中的简单解决方案。如果解决方案过于“数据库化”,我也会在数据库中进行原型设计。

更新:我实际上不会在数据库中使用Python(我甚至没有特定的数据库),我只想用代码来思考“如果我有X关系数据,我可以回答Y问题,解决Z问题?“

2 个答案:

答案 0 :(得分:6)

sqllite3或对象关系映射器,例如SQLAlchemy

sqllite3非常容易设置和工作,就像SQL数据库一样(用于原型设计,当然不适用于生产)。

SQLAlchemy是一个使用真实数据库引擎(它本身可以是sqllite3)的好方法,就像它是一组对象一样。例如,创建表格看起来像这样(来自tutorial):

from sqlalchemy import *

db = create_engine('sqlite:///tutorial.db')
metadata = BoundMetaData(db)

users = Table('users', metadata,
    Column('user_id', Integer, primary_key=True),
    Column('name', String(40)),
    Column('age', Integer),
    Column('password', String),
)
users.create()

类似地,它具有简单的函数和类,允许您插入元素,创建关系以及您可以在数据库中执行的所有其他操作。

ETA:我知道你实际上不会在数据库中使用Python。但是,使用像SQLAlchemy这样的ORM可以将关系数据作为对象处理。它几乎和任何形式的原型一样简单,附加的好处是它更接近你最终会做的事情。

答案 1 :(得分:2)

事实上的关系数据库是SQLite,可以与简单的import sqlite3语句一起使用。您可以look at the documentation进一步使用。

或者,如果您不想沿着该路径前进,则可以使用字典作为其(键,值)对。这可以这样做:

d = {}
d['key'] = 'value'