Python数据结构--我是否需要使用SQL插件。。。如果是,怎么做?
我有以下具有关联属性的类:Python数据结构--我是否需要使用SQL插件。。。如果是,怎么做?,python,sql,database,Python,Sql,Database,我有以下具有关联属性的类: class Company(object): self.ticker # string self.company # string self.creator # string self.link # string self.prices # list of tuples (this could be many hundreds of entries long) self.creation_date # date entr
class Company(object):
self.ticker # string
self.company # string
self.creator # string
self.link # string
self.prices # list of tuples (this could be many hundreds of entries long)
self.creation_date # date entry
我填充各个公司,然后将公司列表存储到类别公司中:
class Companies(object):
def __init__(self):
self.companies = []
def __len__(self):
return len(self.companies)
def __getitem__(self, key):
return self.companies[key]
def __repr__(self):
return 'Company list of length %i' % (self.__len__())
def add(self, company):
self.companies.append(company)
我希望能够轻松执行诸如companys.find(creator=“someguy”)之类的查询,并让类返回someguy创建的所有公司的列表。我还希望能够运行诸如companys.find(creation_date>x)之类的查询,并返回在某个日期之后创建的所有条目的列表
我有一点使用Django的内置SQL功能进行类似工作的经验,并发现这非常方便。然而,这个项目没有使用Django,我不知道是否有其他更小的包提供这个功能。我希望尽量减少与SQL server的接口,因为我对该语言没有太多经验
以下是我的问题:
SQLAlchemy是一个功能齐全的Python ORM(对象关系映射器)。可在以下网址找到 定义新对象的示例用法:
from sqlalchemy import Column, Integer, String
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
fullname = Column(String)
password = Column(String)
def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password
要创建新用户,请执行以下操作:
>>> ed_user = User('ed', 'Ed Jones', 'edspassword')
>>> ed_user.name
'ed'
>>> ed_user.password
'edspassword'
要写入数据库(创建新会话后):
以及查询:
our_user = session.query(User).filter_by(name='ed').first()
>>> our_user
<User('ed','Ed Jones', 'edspassword')>
our_user=session.query(user).filter_by(name='ed').first()
>>>我们的用户
更多详细信息请访问(摘自文档)。有关ORM,请查看SqlAlchemy或Pony。
our_user = session.query(User).filter_by(name='ed').first()
>>> our_user
<User('ed','Ed Jones', 'edspassword')>