我的webpy数据库操作模块

#-------------------------------------------------------------------------------
# Name:        基于web.db模块的数据库操作模块
# Purpose:
#
# Author:      Sharekte
#
# Created:     18/09/2010
# Copyright:   (c) Sharekte 2010
# Licence:     <your licence>
#-------------------------------------------------------------------------------
#!/usr/bin/env python

def main():
    pass

if __name__ == '__main__':
    main()
import web
con=web.database(dbn='mysql',dburl="localhost",port=3306,db="test",user="root",pw="")

def getSearch(table,findtag='AND',*searchfields,**keydict):
   if not searchfields:
       findfields='*'
   else:
       findfields=','.join([str(field) for field in searchfields]) #拼接查询字段
   if not keydict:
       try:
           rsset=con.select(table,what=findfields)
       except (con.db_module.OperationalError,con.db_module.ProgrammingError),msg: #捕获数据库表或字段不存在的异常,返回None,在调用该函数时须捕获TypeError异常
           print msg
           return
   else:
       try:
           rsset = con.select(table, where=web.db.sqlwhere(keydict,grouping=findtag),what=findfields)
       except (con.db_module.OperationalError,con.db_module.ProgrammingError),msg:
           print msg
           return
   return rsset


def getDel(table,findtag='AND',**keydict):
    if not keydict:
        try:
            con.delete(table)
        except (con.db_module.OperationalError,con.db_module.ProgrammingError),msg:
            print msg
    else:
        try:
            con.delete(table,where=web.db.sqlwhere(keydict,grouping=findtag))
        except (con.db_module.OperationalError,con.db_module.ProgrammingError),msg:
            print msg


def getUpdate(table,findtag='AND',**keydict):
    '''Handle of DataBase update,keydict must be comprise key of wherekey and values
       >>>m={'testid':1}
       >>>n={'testname':'nice'}
       getUpdate('testtable',wherekey=m,values=n)
       OR:
       >>>k={'wherekey':{'testid':1},'values':{'testname':'nice'}}
       >>>getUpdate('test',**k)
     '''
    if not keydict:
        return
    else:
        upfields=keydict.get('values')
        keyfields=web.db.sqlwhere(keydict.get('wherekey'),grouping=findtag)
        try:
           con.update(table,keyfields,**upfields)
        except (con.db_module.OperationalError,con.db_module.ProgrammingError),msg:
            print msg


def getInsert(table,**instfields):
    '''Do insert data to DataBase,instfields must be a dict,like this:
        >>>fields={testid:1,testname:'Jack'}
        >>>getInsert('testtable',**fields)'''

    if not instfields:
        return
    else:
        try:
            con.insert(table,**instfields)
        except (con.db_module.OperationalError,con.db_module.ProgrammingError),msg:
            print msg

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值