下面是Python使用MySQL数据库的示例代码攻略,包含了数据库连接、数据查询和数据插入等操作。
连接MySQL数据库
在Python程序中连接MySQL数据库,需要先安装MySQL-Python模块。使用以下命令可以安装该模块:
pip install mysql-connector-python
连接MySQL数据库的代码示例如下:
import mysql.connector
# 根据实际情况修改参数
config = {
'user': 'root',
'password': '123456',
'host': 'localhost',
'database': 'test'
}
# 连接MySQL数据库
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
# 关闭数据库连接
cursor.close()
cnx.close()
数据查询
使用Python程序查询MySQL数据库的代码示例如下:
import mysql.connector
# 根据实际情况修改参数
config = {
'user': 'root',
'password': '123456',
'host': 'localhost',
'database': 'test'
}
# 查询数据
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
query = ("SELECT * FROM users WHERE id = %s")
data = (1,)
cursor.execute(query, data)
result = cursor.fetchone()
# 输出查询结果
print(result)
# 关闭数据库连接
cursor.close()
cnx.close()
数据插入
使用Python程序向MySQL数据库中插入数据的代码示例如下:
import mysql.connector
# 根据实际情况修改参数
config = {
'user': 'root',
'password': '123456',
'host': 'localhost',
'database': 'test'
}
# 插入数据
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
query = ("INSERT INTO users (name, email) VALUES (%s, %s)")
data = ("Tom", "tom@example.com")
cursor.execute(query, data)
cnx.commit()
# 关闭数据库连接
cursor.close()
cnx.close()
以上是Python使用MySQL数据库的示例代码攻略。下面给出两个Python和MySQL配合使用的实际应用场景:
示例1:Python和MySQL配合,自动将数据存入数据库
假设有一个数据文件data.txt
,内容如下:
name,age,email
Tom,18,tom@example.com
Jerry,20,jerry@example.com
现在需要将数据存入MySQL数据库中的students
表中,表结构如下:
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
age INT,
email VARCHAR(255),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
运行以下Python程序,即可将数据存入MySQL数据库中:
import mysql.connector
# 根据实际情况修改参数
config = {
'user': 'root',
'password': '123456',
'host': 'localhost',
'database': 'test'
}
# 连接MySQL数据库
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
# 读取数据文件
with open('data.txt') as f:
header = f.readline().strip().split(',')
for line in f.readlines():
data = line.strip().split(',')
query = "INSERT INTO students (name, age, email) VALUES (%s, %s, %s)"
cursor.execute(query, tuple(data))
# 提交更改
cnx.commit()
# 关闭数据库连接
cursor.close()
cnx.close()
示例2:Python和MySQL配合,统计访问日志并保存到数据库
假设有一个访问日志文件access.log
,内容如下:
192.168.1.1 - - [14/Feb/2021:23:59:58 +0800] "GET /index.html HTTP/1.1" 200 2434
192.168.1.2 - - [14/Feb/2021:23:59:59 +0800] "GET /index.html HTTP/1.1" 200 2434
192.168.1.3 - - [15/Feb/2021:00:00:00 +0800] "GET /index.html HTTP/1.1" 200 2434
192.168.1.1 - - [15/Feb/2021:00:00:01 +0800] "GET /index.html HTTP/1.1" 200 2434
现在需要对访问日志进行统计,并将结果保存到MySQL数据库中的access_stats
表中,表结构如下:
id INT AUTO_INCREMENT PRIMARY KEY,
date DATE NOT NULL,
count INT NOT NULL,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
运行以下Python程序,即可对访问日志进行统计并将结果保存到MySQL数据库中:
import re
from datetime import datetime
import mysql.connector
# 根据实际情况修改参数
config = {
'user': 'root',
'password': '123456',
'host': 'localhost',
'database': 'test'
}
# 连接MySQL数据库
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
# 统计访问日志行数
counts = {}
date_format = '%d/%b/%Y:%H:%M:%S'
match_pattern = r'\[(.+)\]\s+"(.+)"\s+(\d+)\s+(\d+)'
with open('access.log') as f:
for line in f.readlines():
match = re.match(match_pattern, line.strip())
if match:
date_str = match.group(1)
date = datetime.strptime(date_str, date_format).date()
if date in counts:
counts[date] += 1
else:
counts[date] = 1
# 将统计结果保存到MySQL数据库中
for date, count in counts.items():
query = "INSERT INTO access_stats (date, count) VALUES (%s, %s)"
data = (date, count)
cursor.execute(query, data)
cnx.commit()
# 关闭数据库连接
cursor.close()
cnx.close()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python使用mysql数据库示例代码 - Python技术站