如何在Python中模拟关系数据(或数据库)?
我经常用Python来快速试验一些想法,就像一个草稿本一样。现在我想玩一些和数据库中关系数据相关的想法。
在Python中表示数据库的最好方法是什么呢?是用一组元组?还是用像SQLite这样的模块?
我希望在Python中找到简单的解决方案。如果解决方案太“数据库化”,那我还不如直接在数据库里进行原型设计。
更新:我实际上不会把Python和数据库一起使用(我甚至没有具体的数据库想法),我只是想用代码思考一些问题,比如“如果我有X个关系数据,我能否回答Y个问题,解决Z个问题?”
2 个回答
6
你可以使用 sqlite3 或者一个叫做 SQLAlchemy 的对象关系映射工具。
sqlite3
非常容易设置,就像一个普通的 SQL 数据库一样(当然,这主要是用于原型设计,不适合用于正式的生产环境)。
SQLAlchemy 是一个很棒的工具,它可以让你像操作对象一样使用真正的数据库引擎(这个引擎也可以是 sqlite3)。比如,创建一个表看起来大概是这样的(来自这个 教程):
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()
同样,它也有简单的函数和类,可以让你插入数据、创建关系,以及在数据库中能做的其他所有事情。
补充说明:我知道你实际上不会用 Python 来操作数据库。不过,使用像 SQLAlchemy 这样的 ORM 可以让你像处理对象一样处理关系数据。这和任何形式的原型设计差不多简单,而且更接近你最终会做的事情。