Skip to content

Commit 5a19973

Browse files
committed
更新postgres工具类
1 parent f9e944f commit 5a19973

File tree

1 file changed

+88
-6
lines changed

1 file changed

+88
-6
lines changed

tools/postgres.py

Lines changed: 88 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,8 @@ def update(self, table_name, update_field, condition=None):
308308
print sql
309309
cursor = self.conn.cursor()
310310
cursor.execute(sql)
311+
self.conn.commit()
312+
print '更新行数:%s' % cursor.rowcount
311313
cursor.close()
312314
return True
313315
except Exception, e:
@@ -333,20 +335,76 @@ def delete(self, table_name, condition=None):
333335
else:
334336
sql_condition = ''
335337
# 拼接sql语句
336-
sql = 'delete %s %s' % (table_name, sql_condition)
338+
sql = 'delete from %s %s' % (table_name, sql_condition)
337339
print sql
338340
cursor = self.conn.cursor()
339341
cursor.execute(sql)
342+
self.conn.commit()
343+
print '删除行数:%s' % cursor.rowcount
340344
cursor.close()
345+
print '删除成功'
346+
return True
347+
except Exception, e:
348+
print e
349+
350+
def query_by_sql(self, sql=None):
351+
"""
352+
根据sql语句查询
353+
:return:
354+
"""
355+
if self.is_conn_open() is False:
356+
print '连接已断开'
357+
return None
358+
if sql is None:
359+
print 'sql语句不能为空'
360+
return None
361+
# 安全性校验
362+
sql = sql.lower()
363+
if not sql.startswith('select'):
364+
print '未授权的操作'
365+
return None
366+
try:
367+
cursor = self.conn.cursor()
368+
cursor.execute(sql)
369+
rows = cursor.fetchall()
370+
cursor.close()
371+
# print rows
372+
return rows
373+
except Exception, e:
374+
print e
375+
376+
def update_by_sql(self, sql=None):
377+
"""
378+
根据sql语句[增删改]
379+
:return:
380+
"""
381+
if self.is_conn_open() is False:
382+
print '连接已断开'
383+
return False
384+
if sql is None:
385+
print 'sql语句不能为空'
386+
return False
387+
# 安全性校验
388+
sql = sql.lower()
389+
if not (sql.startswith('update') or sql.startswith('insert') or sql.startswith('delete')):
390+
print '未授权的操作'
391+
return False
392+
try:
393+
print sql
394+
cursor = self.conn.cursor()
395+
cursor.execute(sql)
396+
self.conn.commit()
397+
print '影响行数:%s' % cursor.rowcount
398+
cursor.close()
399+
print '执行成功'
341400
return True
342401
except Exception, e:
343402
print e
344403

345404

346405
def test_51job():
347406
"""
348-
测试Mysql类
349-
:return:
407+
测试51job
350408
"""
351409
# 实例化wl_crawl库的连接
352410
wl_crawl = Postgres(db_config_current, 'wl_crawl')
@@ -364,8 +422,12 @@ def test_51job():
364422

365423

366424
def test_china_hr():
425+
"""
426+
测试china_hr
427+
"""
367428
# 实例化wl_crawl库的连接
368429
wl_crawl = Postgres(db_config_current, 'wl_crawl')
430+
369431
# 查询总数
370432
count = wl_crawl.get_count('origin_position', ['source_type=6'])
371433
print 'china_hr职位 原始总记录数:%s\n' % count
@@ -375,13 +437,33 @@ def test_china_hr():
375437
print 'china_hr职位 清洗总记录数:%s\n' % count
376438
count = wl_crawl.get_count('online_company', ['source_type=6'])
377439
print 'china_hr公司 清洗总记录数:%s\n' % count
378-
# 关闭数据库连接
379-
# wl_crawl.close_conn()
440+
380441
# 查询单条记录
381442
# wl_crawl.output_row('origin_company', ['source_type=6'])
382443
# wl_crawl.output_row('origin_position', ['source_type=6', 'id=157789'])
383444
# wl_crawl.output_row('online_position', ['source_type=6', 'id=157789'])
384-
wl_crawl.output_rows('online_position', ['source_type=2'])
445+
# wl_crawl.output_rows('origin_position', ['source_type=6', 'clean_flag=0'])
446+
# wl_crawl.output_rows('online_position', ['source_type=6'])
447+
# wl_crawl.output_rows('origin_company', ['source_type=6'])
448+
# wl_crawl.output_rows('online_company', ['source_type=6', 'id=134064'])
449+
# wl_crawl.output_rows('online_company', ['source_type=6'])
450+
451+
# 还原清洗状态
452+
if 0:
453+
wl_crawl.delete('online_position', ['source_type=6'])
454+
wl_crawl.update('origin_position', ['clean_flag=0'], ['source_type=6', 'clean_flag>0'])
455+
wl_crawl.delete('online_company', ['source_type=6'])
456+
wl_crawl.update('origin_company', ['clean_flag=0'], ['source_type=6', 'clean_flag>0'])
457+
458+
# 还原数据导出状态
459+
if 0:
460+
wl_crawl.update('online_position', ['export_flag=0'])
461+
# 检查字段分类集合
462+
if 0:
463+
sql = 'select distinct(salary_from) from origin_position where source_type=6'
464+
result = wl_crawl.query_by_sql(sql)
465+
print json.dumps(result, indent=4, ensure_ascii=False)
466+
385467
# 关闭数据库连接(测试再次关闭)
386468
wl_crawl.close_conn()
387469

0 commit comments

Comments
 (0)