python用模板mysql-connector设计汽车数据库,有1.不要设计类,连接数据库 2.设计一个窗体,数据库建立admin和sales表3.查询只通过salea表的序号的数据,序号为主建,不能重复,查询结果有窗口提示,查询不到显示是错误,也有错误提示
时间: 2024-03-14 21:48:14 浏览: 30
好的,我会根据您的要求回答您的问题。
首先,为了连接MySQL数据库,我们需要先安装`mysql-connector-python`模块。您可以使用以下命令进行安装:
```
pip install mysql-connector-python
```
接下来,我们需要编写Python代码来连接MySQL数据库并创建`admin`和`sales`表。以下是示例代码:
```python
import mysql.connector
# 连接MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword"
)
# 创建数据库
mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE IF NOT EXISTS cars")
# 连接到数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="cars"
)
# 创建admin表
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE IF NOT EXISTS admin (id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255), password VARCHAR(255))")
# 创建sales表
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE IF NOT EXISTS sales (id INT AUTO_INCREMENT PRIMARY KEY, serial_number INT UNIQUE, make VARCHAR(255), model VARCHAR(255), year INT, price INT)")
# 插入示例数据
mycursor = mydb.cursor()
mycursor.execute("INSERT INTO sales (serial_number, make, model, year, price) VALUES (12345, 'Ford', 'Mustang', 2021, 35000)")
mycursor.execute("INSERT INTO sales (serial_number, make, model, year, price) VALUES (23456, 'Chevrolet', 'Camaro', 2021, 40000)")
mydb.commit()
```
接下来,我们需要设计一个窗体来查询`sales`表中的数据。以下是示例代码:
```python
import mysql.connector
from tkinter import *
# 连接MySQL数据库
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="cars"
)
# 查询数据
def search():
try:
# 从输入框获取序号
serial_number = int(serial_number_entry.get())
# 查询数据
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM sales WHERE serial_number = {}".format(serial_number))
result = mycursor.fetchone()
# 显示查询结果
if result:
make_label.config(text="Make: {}".format(result[2]))
model_label.config(text="Model: {}".format(result[3]))
year_label.config(text="Year: {}".format(result[4]))
price_label.config(text="Price: ${}".format(result[5]))
else:
make_label.config(text="")
model_label.config(text="")
year_label.config(text="")
price_label.config(text="Error: Data not found")
except:
make_label.config(text="")
model_label.config(text="")
year_label.config(text="")
price_label.config(text="Error: Invalid input")
# 创建窗口
window = Tk()
window.title("Car Sales Database")
# 创建输入框和按钮
serial_number_label = Label(window, text="Serial Number:")
serial_number_label.grid(row=0, column=0)
serial_number_entry = Entry(window)
serial_number_entry.grid(row=0, column=1)
search_button = Button(window, text="Search", command=search)
search_button.grid(row=0, column=2)
# 创建查询结果标签
make_label = Label(window, text="")
make_label.grid(row=1, column=0)
model_label = Label(window, text="")
model_label.grid(row=2, column=0)
year_label = Label(window, text="")
year_label.grid(row=3, column=0)
price_label = Label(window, text="")
price_label.grid(row=4, column=0)
window.mainloop()
```
以上代码创建了一个窗口,其中包含一个输入框和一个查询按钮。当用户点击查询按钮时,程序会从输入框获取序号并查询`sales`表中的数据。如果查询成功,程序会在窗口中显示查询结果。如果查询失败,程序会在窗口中显示错误提示。
希望这些示例代码能够帮助您完成您的任务。