webpy中db模块的CRUD操作

这篇文章主要介绍下,如何通过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操作

相关文章:

你感兴趣的文章:

标签云: