基于 Python 语言和数据库课程设计的前端界面设计与实现

1. 摘要

本次设计基于 Python 语言设计前端界面,结合数据库课程所学知识,前端连接数据库,实现数据的增删改查。主要包括以下内容:研究背景、发展现状和目的、程序内容及自己对本课程设计的理解及感想等。本次设计旨在通过实践巩固 Python 语言和数据库课程所学知识,提高自身的编程能力和实际操作能力。

1.2 目录

  • 第一章:研究背景和目的
  • 第二章:程序设计
    • 2.1 程序设计思路
    • 2.2 程序实现过程
    • 2.3 程序运行结果
  • 第三章:自己对本次课程设计的理解及感想

1.3 研究背景和目的

随着信息技术的不断发展,计算机技术已经渗透到我们生活的方方面面。数据库是计算机科学的重要分支,是信息管理的核心技术之一。Python 语言是目前最流行的一种编程语言,具有简单易学、开发效率高等优点。因此,本次设计基于 Python 语言设计前端界面,结合数据库课程所学知识,前端连接数据库,实现数据的增删改查。

本次设计的目的在于通过实践巩固 Python 语言和数据库课程所学知识,提高自身的编程能力和实际操作能力。同时,本次设计也可以让学生更好地理解数据库的原理和实现方式,加深对数据库应用的认识和理解。

2. 程序设计

2.1 程序设计思路

本次设计的程序主要包括以下模块:

  1. 数据库连接模块:实现前端界面与数据库的连接,包括数据库的连接、增删改查操作等。
  2. 前端界面模块:实现用户操作界面,包括数据的增删改查、数据的显示等。

程序设计流程图如下:

程序设计流程图

2.2 程序实现过程

2.2.1 数据库连接模块

数据库连接模块主要负责数据库的连接、增删改查操作等。具体实现如下:

import pymysql

class DB:
    def __init__(self):
        self.conn = pymysql.connect(
            host='localhost',
            user='root',
            password='root',
            db='test',
            charset='utf8mb4',
            cursorclass=pymysql.cursors.DictCursor
        )
        self.cursor = self.conn.cursor()

    def __del__(self):
        self.conn.close()

    def insert(self, name, age, sex):
        sql = 'insert into student(name, age, sex) values(%s, %s, %s)'
        self.cursor.execute(sql, (name, age, sex))
        self.conn.commit()
        return self.cursor.lastrowid

    def delete(self, id):
        sql = 'delete from student where id=%s'
        self.cursor.execute(sql, (id,))
        self.conn.commit()

    def update(self, id, name, age, sex):
        sql = 'update student set name=%s, age=%s, sex=%s where id=%s'
        self.cursor.execute(sql, (name, age, sex, id))
        self.conn.commit()

    def select_all(self):
        sql = 'select * from student'
        self.cursor.execute(sql)
        return self.cursor.fetchall()

    def select_one(self, id):
        sql = 'select * from student where id=%s'
        self.cursor.execute(sql, (id,))
        return self.cursor.fetchone()
2.2.2 前端界面模块

前端界面模块主要负责用户操作界面,包括数据的增删改查、数据的显示等。具体实现如下:

import tkinter as tk
from tkinter import ttk
from db import DB

class App:
    def __init__(self, master):
        self.master = master
        master.title('学生信息管理系统')

        self.db = DB()

        self.tree = ttk.Treeview(master, columns=('id', 'name', 'age', 'sex'))
        self.tree.heading('id', text='ID')
        self.tree.heading('name', text='姓名')
        self.tree.heading('age', text='年龄')
        self.tree.heading('sex', text='性别')
        self.tree.column('id', width=100)
        self.tree.column('name', width=100)
        self.tree.column('age', width=100)
        self.tree.column('sex', width=100)
        self.tree.pack()

        self.tree.bind('<Double-1>', self.on_select)

        self.frame = tk.Frame(master)
        self.frame.pack()

        self.name_label = tk.Label(self.frame, text='姓名')
        self.name_label.grid(row=0, column=0)
        self.name_entry = tk.Entry(self.frame)
        self.name_entry.grid(row=0, column=1)

        self.age_label = tk.Label(self.frame, text='年龄')
        self.age_label.grid(row=1, column=0)
        self.age_entry = tk.Entry(self.frame)
        self.age_entry.grid(row=1, column=1)

        self.sex_label = tk.Label(self.frame, text='性别')
        self.sex_label.grid(row=2, column=0)
        self.sex_entry = tk.Entry(self.frame)
        self.sex_entry.grid(row=2, column=1)

        self.add_button = tk.Button(self.frame, text='添加', command=self.add)
        self.add_button.grid(row=3, column=0)

        self.update_button = tk.Button(self.frame, text='修改', command=self.update)
        self.update_button.grid(row=3, column=1)

        self.delete_button = tk.Button(self.frame, text='删除', command=self.delete)
        self.delete_button.grid(row=3, column=2)

        self.refresh_button = tk.Button(self.frame, text='刷新', command=self.refresh)
        self.refresh_button.grid(row=3, column=3)

        self.id = None

        self.refresh()

    def on_select(self, event):
        item = self.tree.selection()[0]
        values = self.tree.item(item, 'values')
        self.id = values[0]
        self.name_entry.delete(0, tk.END)
        self.name_entry.insert(0, values[1])
        self.age_entry.delete(0, tk.END)
        self.age_entry.insert(0, values[2])
        self.sex_entry.delete(0, tk.END)
        self.sex_entry.insert(0, values[3])

    def add(self):
        name = self.name_entry.get()
        age = self.age_entry.get()
        sex = self.sex_entry.get()
        self.db.insert(name, age, sex)
        self.refresh()

    def update(self):
        name = self.name_entry.get()
        age = self.age_entry.get()
        sex = self.sex_entry.get()
        self.db.update(self.id, name, age, sex)
        self.refresh()

    def delete(self):
        self.db.delete(self.id)
        self.refresh()

    def refresh(self):
        self.tree.delete(*self.tree.get_children())
        for row in self.db.select_all():
            self.tree.insert('', tk.END, values=(row['id'], row['name'], row['age'], row['sex']))

root = tk.Tk()
app = App(root)
root.mainloop()

2.3 程序运行结果

程序运行结果如下:

程序运行结果

3. 自己对本次课程设计的理解及感想

通过本次课程设计,我深刻理解了 Python 语言和数据库课程所学知识的具体应用。在设计过程中,我收获了很多经验和技巧,如代码的封装、模块化思想等。同时,我也意识到了自己在编程能力和实际操作能力方面还需要加强。

总之,本次课程设计让我受益匪浅,不仅提高了自身的编程能力和实际操作能力,也为我未来的学习和工作打下了坚实的基础。

基于 Python 语言和数据库课程设计的前端界面设计与实现

原文地址: https://www.cveoy.top/t/topic/oAqe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录