使用 SQLAlchemy
2008-11-10 13:25:54 来源:WEB开发网使用 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()
Tags:使用 SQLAlchemy
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接