这篇文章主要介绍下,如何通过webpy的db模块完成crud操作。一开始觉得webpy的db模块写的太绕了,现在仔细看了源代码之后,发现确实封装的过于多了点,把一个sql语句各种拆。相对于简单的sqlhelper来说——比如tornadb,这个东西复杂了点,对于ORM来说,这东西有简单了点。不过想起最早时我在写vb或者.net的时候自己写sqlhelper也有过此类的想法,把sql语句的各个部分都给封装起来。
关于某个工具或者类的解释,通过代码能表达得更加直观:
#coding:utf-8import webdb = web.database(dbn='sqlite', db="todos.db")class Todos(object): @staticmethod def get_by_id(id): itertodo = db.select('todos', where="id=$id", vars=locals()) # 参考:https://groups.google.com/forum/#!msg/webpy/PP81l8C5kbQ/90Hgx3HUqG0J return next(iter(itertodo), None) @staticmethod def get_all(): return db.select('todos') @staticmethod def create(**kwargs): db.insert('todos', **kwargs) @staticmethod def update(**kwargs): db.update('todos', where="id=$id", vars={"id": kwargs.pop('id')}, **kwargs) @staticmethod def delete(id): db.delete('todos', where="id=$id", vars=locals())
这其实是对todos进行服务器端扩展的一部分代码,完整代码可见这里: webpy-todos
原文地址:webpy中db模块的CRUD操作, 感谢原作者分享。 拥有一颗比九万五千公里还辽阔的心,