下面为您讲解Python定时修改数据库的完整攻略。
1. 设置定时任务
我们可以使用Python中的sched
模块来设置周期性的任务。下面是一个示例代码:
import time
import sched
def action():
print("Do some actions")
scheduler = sched.scheduler(time.time, time.sleep)
while True:
scheduler.enter(60, 1, action, ())
scheduler.run()
上述示例代码每60秒执行一次action
函数。我们可以将action
函数替换成修改数据库的代码。
2. 修改数据库
在Python中,我们可以使用第三方库pymysql
来连接MySQL数据库并进行数据操作。下面是一个示例代码:
import pymysql.cursors
connection = pymysql.connect(
host='localhost',
user='user',
password='password',
db='database',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
try:
with connection.cursor() as cursor:
# SQL 查询语句
sql = "SELECT * FROM `table` WHERE `name`=%s"
name = 'Tom'
cursor.execute(sql, (name,))
# 获取查询结果
result = cursor.fetchone()
print(result)
# 提交事务
connection.commit()
finally:
# 关闭数据库连接
connection.close()
上述示例代码连接本地MySQL数据库,查询名字为“Tom”的数据,并打印出查询结果。
3. 完整示例代码
import time
import sched
import pymysql.cursors
def update_database():
# 连接数据库
connection = pymysql.connect(
host='localhost',
user='user',
password='password',
db='database',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
try:
# 修改数据
with connection.cursor() as cursor:
# SQL 更新语句
sql = "UPDATE `table` SET `name`=%s WHERE `id`=%s"
name = 'NewName'
id = 1
cursor.execute(sql, (name, id))
# 提交事务
connection.commit()
finally:
# 关闭数据库连接
connection.close()
scheduler = sched.scheduler(time.time, time.sleep)
while True:
# 每10秒执行一次update_database函数
scheduler.enter(10, 1, update_database, ())
scheduler.run()
上述示例代码每10秒执行一次update_database
函数,其中会连接数据库并修改名为“NewName”的数据。
4. 总结
通过sched
模块和pymysql
库的使用,我们可以轻松地实现Python定时修改数据库的功能。真实应用中,需要根据实际情况进行具体的修改和调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 定时修改数据库的示例代码 - Python技术站