CherryPyWSGI服务器在Python中的数据库连接与操作示例
发布时间:2023-12-26 02:52:06
CherryPy是一个轻量级的、高效的Web框架,它支持通过WSGI(Web Server Gateway Interface)进行服务器连接。在Python中,我们可以使用CherryPy服务器来连接和操作数据库。
下面是一个使用CherryPy服务器连接和操作MySQL数据库的示例,包括数据库的创建、插入、查询和删除操作:
import cherrypy
import mysql.connector
# 创建数据库连接
def create_connection():
return mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test"
)
# 创建数据库
def create_database():
connection = create_connection()
cursor = connection.cursor()
cursor.execute("CREATE DATABASE IF NOT EXISTS test")
connection.close()
# 创建数据表
def create_table():
connection = create_connection()
cursor = connection.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)")
connection.close()
# 插入数据
def insert_data(name, age):
connection = create_connection()
cursor = connection.cursor()
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
values = (name, age)
cursor.execute(sql, values)
connection.commit()
connection.close()
# 查询数据
def select_data():
connection = create_connection()
cursor = connection.cursor()
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
connection.close()
return result
# 删除数据
def delete_data(id):
connection = create_connection()
cursor = connection.cursor()
sql = "DELETE FROM users WHERE id = %s"
value = (id,)
cursor.execute(sql, value)
connection.commit()
connection.close()
# CherryPy Web应用
class DatabaseApp(object):
@cherrypy.expose
def index(self):
# 创建数据库
create_database()
# 创建数据表
create_table()
return "Database created."
@cherrypy.expose
def insert(self, name, age):
# 插入数据
insert_data(name, age)
return "Data inserted."
@cherrypy.expose
def select(self):
# 查询数据
result = select_data()
response = ""
for row in result:
response += f"ID: {row[0]}, Name: {row[1]}, Age: {row[2]}
"
return response
@cherrypy.expose
def delete(self, id):
# 删除数据
delete_data(id)
return "Data deleted."
if __name__ == '__main__':
cherrypy.quickstart(DatabaseApp())
在上面的示例中,我们首先创建了一个名为create_connection的函数,用于创建与MySQL数据库的连接。然后,我们定义了一系列用于创建数据库、创建数据表、插入数据、查询数据和删除数据的函数。这些函数分别通过连接和操作数据库来执行相应的任务。
接下来,我们定义了一个名为DatabaseApp的CherryPy Web应用类,其中包含了index、insert、select和delete方法,它们分别对应不同的URL路径和相应的操作。在这些方法中,我们调用前面定义的数据库操作函数来连接和操作MySQL数据库。
最后,我们在__main__函数中使用cherrypy.quickstart来启动CherryPy服务器,并将DatabaseApp类作为参数传入。这样,我们就可以通过访问相应的URL路径来执行数据库的操作。
请注意,上面的示例仅演示了基本的数据库连接和操作,实际应用中可能需要处理更多的错误和异常情况,并进行更完整的输入验证和安全性控制。
