一、Python3 MySQL 数据库连接
https://www.runoob.com/python3/python3-mysql.html
1、PyMySQL 安装
pip3 install PyMySQL
2、连接和操作
#导入模块
import pymysql
#连接数据库
db = pymysql.connect("外网地址","用户名","密码","数据库" ) #要根据实际填写
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = 'show tables'
#执行SQL查询语句
cursor.execute(sql)
#显示SQL查询结果
cursor.fetchall()
# 提交操作
db.commit()
#关闭连接
db.close()
所以连接和操作其实就这5步骤:
- 连接数据库
- 插入游标
- 游标执行sql语句(可以分两步进行,也可以直接写sql语句)
- 提交操作(是必须操作,不然mysql的数据是不会执行的)
- 关闭游标
一般为了防止mysql出错,采用try except执行sql语句,而不是cursor.execute(sql)直接进行执行:
try:
# 执行sql语句
cursor.execute(sql)
# 执行sql语句
db.commit()
except:
# 发生错误时回滚
db.rollback()
二、python定时更新mysql数据
https://blog.csdn.net/wzqnls/article/details/51992487
https://www.cnblogs.com/anpengapple/p/8051923.html
mysql dataV数据库中已有test_realtime表,数据为:
现采用python定时更新amount数据:
- python 使用随机数模块,三个随机0~100的随机整数。;
- 将模拟数据定时存入mysql ;
- 设置定时器,定时执行 。
# -*- coding:utf-8 -*-
import pymysql
import time
import datetime
import numpy as np
#连接数据库
db = pymysql.connect("外网地址","用户名","密码","数据库" )
def job():
#执行更新操作
#select count(*) from test_Realtime; 返回数据行数,这里不返回了,已知为3
cursor = db.cursor()
for i in range(3):
a=np.random.randint(101)
idnum=i+1
sql="update test_realtime set amount=%d where id=%d"%(a,idnum)
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
#关闭
db.close()
#定时执行
while True:
job()
time.sleep( 2 )
三、dataV结果展示
在dataV里面设置数据2s刷新(数据端有明显延迟额),结果:
datav-realtime.gif
网友评论