peewee可用class來建立表,增刪改查,應該是相對餘單錶(本人幾乎沒用過,自以為如此)
想實現sql查詢,得到list,比如這樣的結果[,]
但是查詢結果是全是資料(元組),且找不到列名,後dir後逐個嘗試發現列名可以使用result.description[j][0]獲取
元組使用起來不方便,現實現將資料解析成想要的形式:[{}]
自己摸索的,比較粗糙,後續完善,再加入模糊查詢
from peewee import *
import datetime
import time
import types
import pdb
import uuid
db = mysqldatabase(host=host, user=user, passwd=passwd, database=database, charset=charset, port=port)
def select(table_name, columns='*', where='1=1', limit='0,10'):
傳入表名,要搜尋的列(預設為*),查詢條件,分頁
返回乙個list,其中元素為map,如[,]
'''傳入表名,要插入的資料[{}]
因為資料表使用class建立,繼承了基礎表,在新增資料時加入基礎表預設值
這裡注意表中不能為空的列,否則可能報錯
其中不同的資料型別使用不同的拼接方法,現只做了int,long,unicode,str
'''columns = 'uuid,create_date,modify_date,status,'
keys = values_list[0].keys()
for key in keys:
columns = columns + key + ','
columns = '(' + columns[0:-1] + ')'
values = ''
for value_map in values_list:
data_uuid = uuid.uuid3(uuid.namespace_dns, 'coonever')
time_str = time.strftime("%y-%m-%d %h:%m:%s", time.localtime())
value = "'" + str(data_uuid) + "','" + time_str + "','" + time_str + "',0"
for value_one in value_map.values():
if type(value_one) == long or type(value_one) == int:
value = value + ',' + repr(value_one)
elif type(value_one) == unicode:
value = value + ",'" + value_one.encode('utf-8') + "'"
elif type(value_one) == str:
value = value + ",'" + value_one + "'"
values = values + '(' + value + ')' + ','
values = values[0:-1]
sql = '''
insert into %s %s values %s ;
''' % (table_name, columns, values)
print sql
db.execute_sql(sql)
def insertone(table_name, value_map):
為實現只插入一條資料,然後返回某個值,後續實現返回指定項,現返回uuid
傳入表名,要插入的資料{}
因為資料表使用class建立,繼承了基礎表,在新增資料時加入基礎表預設值
這裡注意表中不能為空的列,否則可能報錯
其中不同的資料型別使用不同的拼接方法,現只做了int,long,unicode,str
''' columns = 'uuid,create_date,modify_date,status,'
keys = value_map.keys()
for key in keys:
columns = columns + key + ','
columns = '(' + columns[0:-1] + ')'
data_uuid = uuid.uuid3(uuid.namespace_dns, 'coonever')
time_str = time.strftime("%y-%m-%d %h:%m:%s", time.localtime())
value = "'" + str(data_uuid) + "','" + time_str + "','" + time_str + "',0"
for value_one in value_map.values():
if type(value_one) == long or type(value_one) == int:
value = value + ',' + repr(value_one)
elif type(value_one) == unicode:
value = value + ",'" + value_one.encode('utf-8') + "'"
elif type(value_one) == str:
value = value + ",'" + value_one + "'"
value = '(' + value + ')'
sql = '''
insert into %s %s values %s ;
''' % (table_name, columns, value)
print sql
db.execute_sql(sql)
return str(data_uuid)
def update(table_name, value_map, where='1=1'):
更新資料,value_map中存放將要更新的列及值
'''time_str = time.strftime("%y-%m-%d %h:%m:%s", time.localtime())
set_value = "modify_date = '" + time_str + "',"
keys = value_map.keys()
values = value_map.values()
for key in keys:
if type(value_map[key]) == long or type(value_map[key]) == int:
set_value = set_value + key + "=" + repr(value_map[key]) + ","
elif type(value_map[key]) == unicode:
set_value = set_value + key + "='" + value_map[key].encode('utf-8') + "',"
elif type(value_map[key]) == str:
set_value = set_value + key + "='" + value_map[key] + "',"
set_value = set_value[:-1]
sql = '''
update %s set %s where %s ;
''' % (table_name, set_value, where)
print sql
db.execute_sql(sql)
def delete(table_name, where='1=1'):
軟刪除,設定status=1
'''sql = '''
update %s set status = 1 where %s ;
''' % (table_name, where)
print sql
db.execute_sql(sql)
Python中peewee模組(二)
前言在前幾天的博文中介紹了peewee的基本操作,一些簡單的建立資料庫,建立表,表的查詢,插入等等。通過這些你並不能體會到peewee的強大之處.peewee深層應用之 bulk insert顧名思義就是實現塊插入或者是批量插入的功能,在處理大資料的時候簡直爽到爆!單個 多個 字典的整個插入 速度很...
Response AddHeader使用例項收集
response.addheader refresh 60 url newpath newpage.asp 這等同於客戶機端元素 頁面轉向 response.status 302 object moved response.addheader location newpath newpage.asp...
使用ServletFileUpload實現上傳
1.首先我們應該為上傳的檔案建乙個存放的位置,一般位置分為臨時和真是資料夾,那我們就需要獲取這倆個資料夾的絕對路徑,在servlet中我們可以這樣做 然後建立檔案工廠即倉庫乙個引數表示存放多大後flush,fileitemfactory factory new diskfileitemfactory...