WEB开发网
开发学院软件开发Python 使用 SQLAlchemy 阅读

使用 SQLAlchemy

 2008-11-10 13:25:54 来源:WEB开发网   
核心提示: 使用 session.add()、session.add_all()(save/update/save_or_update 已删除)在会话中添加内容, 虽然 declarative 扩展从 0.4 开始便一直出现在 SQLAlchemy 中,使用 SQLAlchemy(3),但它也经过了一

使用 session.add()、session.add_all()(save/update/save_or_update 已删除)在会话中添加内容。

虽然 declarative 扩展从 0.4 开始便一直出现在 SQLAlchemy 中,但它也经过了一些小修改,这使它在大多数 SQLAlchemy 项目中都成为了一种强有力的便捷方式。新的 declarative 语法允许在一步中创建表、类和数据库映射。下面我们来看看这种新语法的工作原理,以我编写的一个用于跟踪文件系统变化的工具为例。

清单 1. 新 SQLAlchemy 声明样式

#/usr/bin/env python2.5
#Noah Gift
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
Base = declarative_base()
class Filesystem(Base):
  __tablename__ = 'filesystem'
  path = Column(String, primary_key=True)
  name = Column(String)
  def __init__(self, path,name):
    self.path = path
    self.name = name
  def __repr__(self):
    return "<Metadata('%s','%s')>" % (self.path,self.name)

通过这种新的声明样式,SQLAlchemy 能够在一步中创建一个数据库表、创建一个类以及类与表之间的映射。如果您刚开始接触 SQLAlchemy,或许应该学习这种建立 ORM 的方法。此外,了解另一种更加显式地控制各步骤的方式也是有益的(如果您的项目要求这种级别的详细程度)。

在阅读这段代码时,需要指出一些可能会让初次接触 SQLAlchemy 或声明性扩展的用户犯难的地方。首先,Base = declarative_base()

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 SQLAlchemy

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接