使用 SQLAlchemy
2008-11-10 13:25:54 来源:WEB开发网记得您之前启用了 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,并且应该能执行一些数据库查询操作。祝您好运!
Tags:使用 SQLAlchemy
编辑录入:爽爽 [复制链接] [打 印]- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
- ››使用 COLUMN函数编制单元信息
更多精彩
赞助商链接