我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案。在众多数据库中,MySQL数据库算是入门比较简单、语法比较简单,同时也比较实用的一个。在这篇博客中,将以MySQL数据库为例,介绍一下如何使用Python操作数据库。
本科阶段曾学过使用Java对MySQL数据库进行操作,基本思路是先连接数据库,然后执行SQL语句对数据库进行操作,最后打印结果并断开连接。使用Python操作数据库的流程和以上过程基本一致,在对其进行介绍之前,先介绍一些基本的概念。
话不多说,直接上代码。
#!/usr/bin/python
# -*- coding:utf8 -*-
# author: chenzhixin
"""
一、安装环境:
python3
pip install pymysql
pip install pymssql
二、实现功能:
将mysql的oa_2016.formmain_5027(手机打卡记录)数据,增量同步到sqlserver数据库的kaoqin.CHECKINOUT中
三、运行方法:
a)定时任务
[root@oadb1 shell]# crontab -l
* * * * * python -W ignore /usr/local/shell/sync_mobile_kaoqin.py >> /var/log/sync_mobile_kaoqin.log 2>&1
b) 日志位置
tail -f /var/log/sync_mobile_kaoqin.log
四、测试sql:
mysql执行
select * from oa_2016.formmain_5027
sqlserver上执行
select * from CHECKINOUT where sn='手机端打卡'
"""
from contextlib import contextmanager
import pymysql as mysqldb
import pymssql as mssqldb
import time
@contextmanager
def get_mysql_conn(**kwargs):
"""
建立MySQL数据库连接
:param kwargs:
:return:
"""
conn = mysqldb.connect(host=kwargs.get('host', 'localhost'),
user=kwargs.get('user'),
password=kwargs.get('password'),
port=kwargs.get('port', 3306),
database=kwargs.get('database')
)
try:
yield conn
finally:
if conn:
conn.close()
@contextmanager
def get_mssql_conn(**kwargs):
"""