要求我们最后数据库要与其他软件连接,我们小组用的是SQL Server,想与Python(Spyder)连接,但是我们无法使用tkinter库设计界面,只能在旁边手动输入,比较不美观(要求比较严格)。希望大家可以教教我们小组同学QAQ
数据库的部分已经完成,只有连接部分不会,希望能有一个带弹窗的界面。
题目如下:
高校学籍管理系统
功能要求:
l实现学生信息、班级、院系、专业等的管理;
l实现课程、学生成绩信息管理;
l实现学生的奖惩信息管理;
l创建规则用于限制性别项只能输入“男”或“女”;
l创建视图查询各个学生的学号、姓名、班级、专业、院系;
l创建存储过程查询指定学生的成绩单;
l创建触发器当增加、删除学生和修改学生班级信息时自动修改相应班级学生人数;
l建立数据库相关表之间的参照完整性约束。
需要导入Tkinter库及其子模块,以及pyodbc库。
import tkinter as tk
from tkinter import messagebox
import pyodbc
接着,我们需要创建一个主界面,并设置窗口标题。
# 创建主界面
root = tk.Tk()
# 设置窗口标题
root.title('高校学籍管理系统')
然后,我们需要在主界面中添加各种小部件,如标签、文本框、按钮等,来构建查询界面。
# 创建标签
tk.Label(root, text='学号').grid(row=0, column=0)
tk.Label(root, text='班级').grid(row=1, column=0)
tk.Label(root, text='姓名').grid(row=2, column=0)
tk.Label(root, text='学院').grid(row=3, column=0)
tk.Label(root, text='专业').grid(row=4, column=0)
# 创建文本框
entry_sid = tk.Entry(root)
entry_sid.grid(row=0, column=1)
entry_class = tk.Entry(root)
entry_class.grid(row=1, column=1)
entry_name = tk.Entry(root)
entry_name.grid(row=2, column=1)
entry_college = tk.Entry(root)
entry_college.grid(row=3, column=1)
entry_major = tk.Entry(root)
entry_major.grid(row=4, column=1)
# 创建按钮
btn_query = tk.Button(root, text='查询')
btn_query.grid(row=5, column=0, columnspan=2)
在按钮点击事件(Button Click Event)中,我们可以编写代码来执行SQL语句,并将查询结果显示在弹窗中。
# 创建按钮点击事件
def query():
# 获取文本框中的输入值
sid = entry_sid.get()
class_ = entry_class.get()
name = entry_name.get()
college = entry_college.get()
major = entry_major.get()
# 连接数据库
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=<your_server_name>;DATABASE=<your_database_name>;UID=<your_username>;PWD=<your_password>')
# 创建游标
cursor = conn.cursor()
# 执行SQL语句
cursor.execute('SELECT * FROM students WHERE sid=? AND class=? AND name=? AND college=? AND major=?', (sid, class_, name, college, major))
# 获取查询结果
result = cursor.fetchall()
# 关闭游标和连接
cursor.close()
conn.close()
# 判断查询结果是否为空
if len(result) == 0:
messagebox.showinfo('提示', '未查询到符合条件的学生')
else:
# 将查询结果显示在弹窗中
messagebox.showinfo('查询结果', result)
最后,我们需要将按钮的点击事件与query函数绑定,使得在点击按钮时能够执行query函数。
# 将按钮的点击事件与query函数绑定
btn_query.config(command=query)
在最后,我们需要启动主界面的事件循环,以便用户可以与界面进行交互。
# 启动主界面的事件循环
root.mainloop()
以上就是一个简单的查询界面的设计过程。望采纳,来自百度GPT
好的,SQL Server 和 Python 的连接可以使用 pyodbc 库实现,并且结合 tkinter 库可以设计出美观实用的界面。下面就是一个简单的示例代码,供你参考:
import pyodbc
import tkinter as tk
from tkinter import ttk
from tkinter.messagebox import showinfo
# 数据库连接配置
server = 'your_server_name'
database = 'your_database_name'
username = 'your_username'
password = 'your_password'
driver = '{SQL Server}'
# 建立数据库连接
cnxn = pyodbc.connect(f'DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password}')
# 创建 Tkinter 窗口
window = tk.Tk()
window.title('高校学籍管理系统')
# 添加标签控件
lbl_title = ttk.Label(window, text='高校学籍管理系统', font=('Arial', 18))
lbl_title.grid(column=0, row=0, padx=10, pady=10)
lbl_instruction = ttk.Label(window, text='请选择要进行的操作:', font=('Arial', 14))
lbl_instruction.grid(column=0, row=1, padx=10, pady=10)
# 添加按钮控件
def show_students():
# 查询所有学生信息
cursor = cnxn.cursor()
cursor.execute('SELECT * FROM students')
rows = cursor.fetchall()
# 在弹窗中显示查询结果
result_str = ''
for row in rows:
result_str += f'{row.id} - {row.name} - {row.gender}\n'
showinfo('学生信息', result_str)
btn_show_students = ttk.Button(window, text='显示学生信息', command=show_students)
btn_show_students.grid(column=0, row=2, padx=10, pady=10)
def show_scores():
# 查询所有学生成绩信息
cursor = cnxn.cursor()
cursor.execute('SELECT * FROM scores')
rows = cursor.fetchall()
# 在弹窗中显示查询结果
result_str = ''
for row in rows:
result_str += f'{row.id} - {row.course} - {row.score}\n'
showinfo('成绩信息', result_str)
btn_show_scores = ttk.Button(window, text='显示成绩信息', command=show_scores)
btn_show_scores.grid(column=0, row=3, padx=10, pady=10)
# 显示窗口并进入主循环
window.mainloop()
这段代码基于 Tkinter 编写了一个简单的 GUI 界面,包括了两个按钮实现了显示学生和成绩信息的功能。你可以根据实际需要添加更多控件和事件响应函数来实现程序的其他功能要求。
另外,与 SQL Server 相关的操作可以通过 pyodbc 库的 cursor 对象实现。例如,查询所有学生信息:
cursor = cnxn.cursor()
cursor.execute('SELECT * FROM students')
rows = cursor.fetchall()
其中 cnxn 是连接数据库的 Connection 对象。查询结果会返回一个元组列表,每个元组对应一条记录。你可以根据需要对该列表进行遍历处理、格式化输出等操作。
有现成的,可以参考下
Python+MySQL+Tkinter设计学生信息管理系统(速成)
https://blog.csdn.net/Keitheasun/article/details/127563695
学籍管理系统其实和学生信息管理系统类似,学籍管理包括学生信息管理,因此,你其实可以参考学生信息管理系统来进行补充和修改,而且关于学生信息管理系统的开源代码比较多。
比如https://blog.csdn.net/qq_65898266/article/details/128225735
连接数据库示例
import pyodbc
#连接数据库
conn = pyodbc.connect(
r'DRIVER={SQL Server};'
r'SERVER=your_server_name;'
r'DATABASE=your_database_name;'
r'UID=your_user_id;'
r'PWD=your_password'
)