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

使用 SQLAlchemy

 2008-11-10 13:25:54 来源:WEB开发网   
核心提示: 记得您之前启用了 SQL echo 吗?鉴于此,当代码将此新条目添加到文件系统中时,使用 SQLAlchemy(8),您可以看到 SQL 语句,如果您现在删除该文件,借助新掌握的 SQLAlchemy 知识,您应该能够快速实现自己的 reddit,您也可以看到删除的过程,下面是您键入 rm

记得您之前启用了 SQL echo 吗?鉴于此,当代码将此新条目添加到文件系统中时,您可以看到 SQL 语句。如果您现在删除该文件,您也可以看到删除的过程。下面是您键入 rm 语句 rm foobar.txt 时的输出:Removing: /tmp/foobar.txt
2008-06-22 08:06:01,727 INFO
sqlalchemy.engine.base.Engine.0x..4c BEGIN
2008-06-22 08:06:01,733 INFO
sqlalchemy.engine.base.Engine.0x..4c SELECT filesystem.path
AS filesystem_path, filesystem.name AS filesystem_name
FROM filesystem
WHERE filesystem.path = ?
LIMIT 2 OFFSET 0
2008-06-22 08:06:01,733 INFO
sqlalchemy.engine.base.Engine.0x..4c ['/tmp/foobar.txt']
2008-06-22 08:06:01,736 INFO
sqlalchemy.engine.base.Engine.0x..4c DELETE FROM filesystem WHERE filesystem.path = ?
2008-06-22 08:06:01,736 INFO
sqlalchemy.engine.base.Engine.0x..4c [u'/tmp/foobar.txt']
2008-06-22 08:06:01,737 INFO
sqlalchemy.engine.base.Engine.0x..4c COMMIT

在 Filesystem 类中,您添加了一个 transactional 方法,您将使用一个修饰类来处理将文件系统事件提交给数据库的语义。Pyinotify 中的实际 Filesystem I/O 监控由 ProcessDir 类完成,该类继承自 ProcessEvents 并覆盖了其中的方法。如果您注意了 process_IN_CREATE 和 process_IN_DELETE 方法,会发现它们都附加了一个 transactional 修饰类。随后,它们将接受创建或删除事件并对数据库执行修改。

还有一个名称为 initial_repository 的方法,每次运行脚本时它都会填充数据库,实现方法是销毁数据库中的表并重新创建。脚本的最底部将通知 Pyinotify 代码以不确定的方式运行,而这最终表示作为守护进程运行。

结束语

本文介绍了 SQLAlchemy 的一些特性,并演示了它和 API 的使用是多么简单。借助 SQLAlchemy 和开源库 Pyinotify,您还使用不到 100 行 Python 代码构建了一个功能异常强大的工具。这是简单但功能强大的 ORM 的特性之一。它消除了复杂的关系数据库处理操作,现在它为用户添加了快乐而不是负担。随后,这些省下来的精力可以用于解决感兴趣的问题,因为 SQLAlchemy 将是最简单的环节。

如果您有兴趣了解更多关于 SQLAlchemy 的信息,则应该阅读本文末尾列出的 参考资料。其中包括一本出色的书籍和大量优秀的在线文档,您可以考虑研究其他一些使用 SQLAlchemy 的项目并扩展它们。最近一个较有兴趣的 SQLAlchemy 相关项目就是 Website reddit.com。它使用纯 WSGI 框架 Pylons 构建,并整合了 SQLAlchemy 作为其默认 ORM。我附带了到 reddit 完整源代码的链接。借助新掌握的 SQLAlchemy 知识,您应该能够快速实现自己的 reddit,并且应该能执行一些数据库查询操作。祝您好运!

上一页  3 4 5 6 7 8 

Tags:使用 SQLAlchemy

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