python写学生信息管理系统窗口并能存入数据库中
时间: 2024-10-28 10:09:48 浏览: 13
python大作业学生成绩管理系统.zip
在Python中创建一个学生信息管理系统的窗口通常会涉及到GUI编程,比如使用Tkinter库来设计用户界面,以及SQLite或MySQL等数据库系统来存储数据。以下是一个简单的例子,我们将展示如何使用Tkinter创建基本的界面,并通过sqlite3库将数据存入数据库:
```python
import tkinter as tk
import sqlite3
# 创建连接到SQLite数据库
def create_connection(db_file):
conn = None;
try:
conn = sqlite3.connect(db_file)
print(sqlite3.version)
except Error as e:
print(e)
if conn:
return conn
# 创建表结构
def create_table(conn, create_table_sql):
try:
c = conn.cursor()
c.execute(create_table_sql)
except Error as e:
print(e)
# 插入数据
def insert_data(conn, sql):
try:
c = conn.cursor()
c.execute(sql)
conn.commit()
except Error as e:
print(e)
# 窗口和按钮函数
def add_student():
name = entry_name.get()
age = entry_age.get()
# 连接到SQLite数据库(这里简化了示例,实际应用需要处理异常)
conn = create_connection('students.db')
# 假设已有一个students表
sql = f"INSERT INTO students (name, age) VALUES ('{name}', {age})"
insert_data(conn, sql)
# 提交事务并关闭连接
conn.close()
message.config(text="Student added successfully!")
# 主程序开始
root = tk.Tk()
root.title("Student Information Manager")
label_name = tk.Label(root, text="Name:")
entry_name = tk.Entry(root)
add_button = tk.Button(root, text="Add Student", command=add_student)
label_age = tk.Label(root, text="Age:")
entry_age = tk.Entry(root)
message = tk.Message(root, text="")
# 布局
label_name.grid(row=0, column=0)
entry_name.grid(row=0, column=1)
add_button.grid(row=1, column=1)
label_age.grid(row=2, column=0)
entry_age.grid(row=2, column=1)
message.grid(row=3, column=0, columnspan=2)
root.mainloop()
```
在这个例子中,用户输入学生的姓名和年龄,点击“添加学生”按钮后,数据会被插入到名为`students`的数据库表中。实际项目中还需要对错误处理、数据验证和更复杂的表结构进行考虑。
阅读全文