-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathsqlite.py
More file actions
105 lines (101 loc) · 3.69 KB
/
sqlite.py
File metadata and controls
105 lines (101 loc) · 3.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/env python
#coding=utf-8
import sqlite3 as db
import os
import config
from flask import g
class sqlite:
def __init__(self):
self.conn = getattr(g, '_database', None)
if self.conn is None:
dbFilePath = config.DB_STRING
if os.path.exists(dbFilePath):
self.conn = db.connect(dbFilePath)
self.conn.text_factory = str
#self.cursor = self.conn.cursor()
else:
import install
self.conn = db.connect(dbFilePath)
self.conn.text_factory = str
#self.cursor = self.conn.cursor()
g._database = self.conn
self.cursor = self.conn.cursor()
def fetchAll(self, sql,data=[]):
result = None
if self.cursor.execute(sql,data):
result = self.cursor.fetchall()
if len(result) > 0:
return [dict(zip([j[0] for j in self.cursor.description], i)) for i in result]
return result
def fetchOne(self, sql,data=[]):
result = None
if self.cursor.execute(sql,data):
result = self.cursor.fetchone()
if result != None:
return dict(zip([j[0] for j in self.cursor.description], result))
return result
def getList(self,tableName,colums,condition,orders='',limits=''):
sql = "SELECT "+colums+" FROM " + tableName + " WHERE 1=1"
if type(condition) == dict:
for i in condition.keys():
sql = sql + " AND "+i+"=?"
else:
sql = sql + condition
if orders !='':
sql = sql+' order by '+orders
if limits != '':
sql = sql+' limit '+limits
result = self.fetchAll(sql,condition.values())
result = [] if result == None else result
return result
def getOne(self,tableName,colums,condition,orders='',limits=''):
sql = "SELECT "+colums+" FROM " + tableName + " WHERE 1=1"
if type(condition) == dict:
for i in condition.keys():
sql = sql + " AND "+i+"=?"
else:
sql = sql + condition
if orders !='':
sql = sql+' order by '+orders
if limits != '':
sql = sql+' limit '+limits
return self.fetchOne(sql,condition.values())
def insert(self, tableName, data):
sql = "INSERT INTO " + tableName + " (`"+'`,`'.join(data.keys())+"`) VALUES ("+("?,"*len(data))[:-1]+")"
status = self.cursor.execute(sql, data.values())
self.conn.commit()
return self.cursor.lastrowid
def delete(self, tableName, condition):
sql = "DELETE FROM " + tableName + " WHERE 1=1"
if type(condition) == dict:
for i in condition.keys():
sql = sql + " AND "+i+"=?"
else:
sql = sql + condition
status = self.cursor.execute(sql, condition.values())
self.conn.commit()
return status
def update(self, tableName, data,condition):
sql = "UPDATE " + tableName + " SET "
#update data
if type(data) == dict:
for i in data.keys():
sql = sql + " "+i+"=?,"
else:
sql = sql + data
#condition
sql = sql[:-1] + " WHERE 1=1 "
if type(condition) == dict:
for i in condition.keys():
sql = sql + " AND "+i+"=?"
else:
sql = sql + condition
status = self.cursor.execute(sql, data.values()+condition.values())
self.conn.commit()
return status
def execute(self,sql,data=[]):
status = self.cursor.execute(sql)
self.conn.commit()
return status
if __name__ == '__main__':
sqlite()