十一、学生信息管理系统(PyQt5+MySQL+PyMySQL模块实现)


本站和网页 http://e.betheme.net/article/show-950269.html?action=onClick 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

十一、学生信息管理系统(PyQt5+MySQL+PyMySQL模块实现)
首页编程日记站长技术精选博文python作文网chatgpt专题十一、学生信息管理系统(PyQt5+MySQL+PyMySQL模块实现)2023/9/2 16:51:53      随着教育的普及,各学校学会人数越来越多,学生信息管理一直被视为校园管理中的一个瓶颈,传统的管理方式并不能适应时代发展。其中,学生信息管理主要包括学籍管理、科学管理、课外活动管理、学生成绩管理、生活管理等内容。       本节使用Python+PyQt5+MySQL开发一个学生信息管理系统,主要对学生的基本信息及所在班级、年级信息进行管理。
1. 需求分析
简单友好的操作窗体,以方便管理员的日常管理工作;整个系统的操作流程简单,易于操作;完备的学生基本信息管理及班级年级管理功能;全面的系统维护管理,方便系统日后维护工作;强大的基础信息设置功能。
2. 系统设计
      主要包括系统功能结构、系统业务流程和系统预览等内容。
1. 系统功能结构
其中,基本信息管理和系统查询为本系统的核心功能。
2. 系统业务流程
3. 系统预览
      学生信息管理系统由多个窗体组成。
      系统登录窗体主要用于限制非法用户进入系统内部。
      系统主窗体的主要功能是调用执行本系统的所有功能。
      年级信息设置窗体的主要功能是对年级的信息进行增、删、改操作。
      班级信息设置窗体的主要功能是对班级信息进行增、删、改操作。
      学生信息管理窗体的主要功能是对学生基本信息进行添加、修改、删除操作。
      学生信息查询窗体的主要功能是查询学生的基本信息。
      用户信息维护窗体的主要功能是对系统的登录用户及对应密码进行添加、删除和修改操作。
3. 系统开发必备
1. 系统开发环境
操作系统:Windows 7、Windows 10等。Python版本:Python 3.9.0。开发工具:PyCharm。数据库:MySQL。Python内置模块:sys。第三方模块:PyQt5、pyqt5-tools、PyMySQL。
2. 系统组织结构
4. 数据库设计
      学生信息管理系统主要用于管理学生的基本信息,因此除了基本的学生信息表之外,还要设计年级信息表、班级信息表等。
1. 数据库结构设计
      本系统采用MySQL作为数据库,MySQL数据库作为一个开源、免费的数据库系统,其以简单、易用、数据存取速度快等特点赢得了开发者的喜爱。学生信息管理系统的数据库名称为db_student,共包含4张数据表和两个视图。
2. 数据表结构设计
1. tb_class(班级信息表)
主要用于保存班级信息。
字段名称数据类型长度是否是主键描述classIDint是班级编号gradeIDint年级编号classNamevarchar20班级名称
2. tb_grade表
年级信息表,主要用来保存年级信息。
字段名称数据类型长度是否是主键描述gradeIDint是年级编号gradeNamevarchar20年级名称
3. tb_student表
用来保存学生信息。
字段名称数据类型长度是否是主键描述stuIDvarchar20是学生编号stuNamevarchar20学生姓名classIDint班级编号gradeIDint年级编号ageint年龄sexint4性别phonechar20联系电话addressvarchar100家庭地址
4. tb_user表
系统用户表,主要用来保存系统的登录用户相关信息。
字段名称数据类型长度是否是主键描述userNamevarchar20是用户姓名userPwdvarchar50用户密码
3. 视图设计
      为了使数据查询更方便快捷,减少数据表连接查询带来的麻烦,我们将创建2个视图。
1. v_classinfo(班级及年级信息视图)
v_classinfo视图主要为了查询年级及对应班级的详细信息。 创建的代码如下:
# 1. 创建v_classinfo视图
use db_student;
drop view if exists v_classinfo;
create view v_classinfo as
select tb_class.classID as classID,
tb_grade.gradeID as gradeID,
tb_grade.gradeName as gradeName,
tb_class.className as className
from (tb_class join tb_grade)
where (tb_class.gradeID=tb_grade.gradeID);
2. v_studentifno(学生详细信息视图)
v_studentinfo视图主要为了查询学生的详细信息。 创建的代码如下:
# 2. 创建v_studentinfo视图
use db_student;drop view if exists v_studentinfo;create view v_studentinfo as
select tb_student.stuID as stuID,
tb_student.stuName as stuName,
tb_student.age as age,
tb_student.sex as sex,
tb_student.phone as phone,
tb_student.address as address,
tb_class.className as className,
tb_grade.gradeName as gradeName
from ((tb_student join tb_class) join tb_grade)
where ((tb_student.classID = tb_class.classID) and (tb_student.gradeID = tb_grade.gradeID));
5. 公共模块设计
      开发Python项目时,将常用的代码封装为模块,可以大大提高代码重用率。本系统中创建一个service.py公共模块,主要用来连接数据库,并实现数据库的添加、修改、删除、模糊查询和精确查询等功能,在实现具体的窗体模块功能时,只需要调用service.py公共模块中的相应方法即可。
1. 模块导入及公共变量
      由于需要对MySQL数据库进行操作,所以在service.py中需要导入PyMySQL模块。
import pymysql # 导入操作MySQL数据库的模块 # pip install PyMSQL
      定义一个全局变量userName,用来记录登录的用户名。
userName="" # 记录用户名 # 全局变量
2. 打开数据库连接
      定义一个open()方法,用来使用PyMySQL模块中的connect()方法连接指定的MySQL数据库,并返回一个连接对象。
# 打开数据库连接
def open():db = pymysql.connect(host="locahost", user="root", password="123456", database="db_student", charset="utf8")return db # 返回连接对象
3. 数据的增删改
      定义一个exec()方法,主要实现数据库的添加、修改和删除功能,该方法有2个参数,第一个参数是要执行的SQL语句;第二个参数是一个元组,表示SQL语句中要用到的参数。
# 执行数据库的增、删、改操作
def exec(sql, values):db = open() # 连接数据库cursor = db.cursor() # 使用cursor()方法获取操作游标try:cursor.execute(sql, values) # 执行增删改的SQL语句db.commit() # 提交数据return 1 # 执行成功except:db.rollback() # 发生错误时回滚return 0finally:cursor.close() # 关闭游标db.close() # 关闭数据库连接
4. 数据的查询方法
      定义一个query()方法,用来实现带参数的精确查询,该方法中有两个参数,第一个参数为要执行的SQL查询语句;第二个参数为可变参数,表示SQL查询语句中需要用到的参数。
# 带参数的精确查询
def query(sql, *keys):db = open() # 连接数据库cursor = db.cursor() # 使用cursor()方法获取操作游标cursor.execute(sql, keys) # 执行查询 SQL语句result = cursor.fetchall() # 记录查询结果cursor.close() # 关闭游标db.close() # 关闭数据库连接return result # 返回查询结果
      定义一个query2()方法,用来实现不带参数的模糊查询,该方法中只有一个参数,表示要执行的SQL查询语句。其中,SQL查询语句中可以使用like关键字和通配符进行模糊查询。
# 不带参数的模糊查询
def query2(sql):db = open() # 连接数据库cursor = db.cursor() # 使用cursor()方法获取操作游标cursor.execute(sql) # 执行查询SQL语句result = cursor.fetchall() # 记录查询结果cursor.close() # 关闭游标db.close() # 关闭数据库连接return result # 返回查询结果
6. 登录模块设计
      使用的数据表:tb_user。
1. 登录模块概述
      登录模块主要对输入的用户名和密码进行验证,如果没有输入用户名和密码,或者输入错误,弹出提示框,否则,进入学生信息管理系统的主窗体。
2. 模块的导入
      登录模块是在login.py文件中实现的,在该文件中,首先导入公共模块。
import sys # 导入sys模块
import main
from service import service
      由于service.py模块在service文件夹中,所以使用from…import…形式导入。
3. 登录功能的实现
      定义一个openMain()方法,调用service模块中的query()方法查询输入的用户名和密码在tb_user数据表中是否存在,如果存在,记录当前登录用户名,并显示主窗体;若不存在,则提示用户输入正确的用户名和密码。
# 打开主窗体def openMain(self):service.userName=self.editName.text() # 全局变量,记录用户名self.userPwd=self.editPwd.text() # 记录用户密码if service.userName != "" and self.userPwd != "": # 判断用户名和密码不为空# 根据用户名和密码查询数据result=service.query("select * from tb_user where userName = %s and userPwd = %s",service.userName,self.userPwd)if len(result)>0: # 如果查询结果大于0,说明存在该用户,可以登录self.m = main.Ui_MainWindow() # 创建主窗体对象self.m.show() # 显示主窗体MainWindow.hide() # 隐藏当前的登录窗体else:self.editName.setText("") # 清空用户名文本self.editPwd.setText("") # 清空密码文本框QMessageBox.warning(None, '警告', '请输入正确的用户名和密码!', QMessageBox.Ok)else:QMessageBox.warning(None, '警告', '请输入用户名和密码!', QMessageBox.Ok)
      定义openMain()方法后,将其分别绑定到“密码”输入框的editingFinished信号和“登录”按钮的clicked信号,以便在输入密码后按Enter键,或者单击“登录”按钮时,能够执行登录操作。
# 输入密码后按Enter键执行登录操作self.editPwd.editingFinished.connect(self.openMain)# 单击“登录”按钮执行登录操作self.btnLogin.clicked.connect(self.openMain)
4. 退出登录窗体
      单击“退出”按钮,关闭当前的登录窗口,该功能主要是通过为“退出”按钮的clicked信号绑定内置close()函数实现的。
self.btnExit.clicked.connect(MainWindow.close) # 关闭登录窗体
5. 在Python中启动登录窗体
      在login.py中加入主方法:
# 主方法
if __name__ == '__main__':app = QtWidgets.QApplication(sys.argv)MainWindow = QtWidgets.QMainWindow() # 创建窗体对象ui = Ui_MainWindow() # 创建PyQt5设计的窗体对象ui.setupUi(MainWindow) # 调用PyQt5窗体的方法对窗体对象进行初始化设置MainWindow.show() # 显示窗体sys.exit(app.exec_()) # 程序关闭时退出进程
7. 主窗体模块设计
1. 主窗体概述
      主窗体是学生信息管理系统与用户交互的一个重要窗口,因此要求一定要设计合理,该主窗体主要包括一个菜单栏,通过该菜单栏中的菜单项,用户可以打开各个功能窗体,也可以退出本系统;另外,为了界面美观,本程序为主窗体设置了背景图片,并且背景图片自动适应主窗体的大小。
2. 模块导入及窗体初始化
      主窗体是在main.py中实现的,由于主窗体中需要打开各个功能窗体,因此需要导入项目中创建的窗体对应的模块,并且导入公共服务模块service。
from PyQt5.QtWidgets import *from service import servicefrom baseinfo import studentfrom query import studentinfofrom settings import classes,gradefrom system import user
      使用Qt Designer设计的窗体,在转换为.py文件时,默认继承object类,但为了能够在窗体间互相调用,需要将其继承类修改为QMainWindow,并且为它们添加__init__方法,在该方法中可以对窗体进行初始化,并且设置窗体的显示样式。
class Ui_MainWindow(QMainWindow):# 构造方法def __init__(self):super(Ui_MainWindow, self).__init__()self.setWindowFlags(QtCore.Qt.MSWindowsFixedSizeDialogHint) # 只显示最小化和关闭按钮self.setupUi(self) # 初始化窗体设置
      其他功能窗体都需要按照上面代码修改继承类,并添加__init__()方法。
3. 在主窗体中打开其他功能窗体
      在学生信息管理系统的主窗体中,选择相应菜单下的菜单项,可以打开相应的功能窗体。
# 基础设置菜单对应槽函数def openSet(self,m):if m.text()=="年级设置":self.m = grade.Ui_MainWindow() # 创建年级设置窗体对象self.m.show() # 显示窗体elif m.text()=="班级设置":self.m = classes.Ui_MainWindow() # 创建班级设置窗体对象self.m.show() # 显示窗体
      为“基础设置”菜单的triggered信号关联自定义的openSet()方法。
# 为基础设置菜单中的QAction绑定triggered信号self.menu.triggered[QtWidgets.QAction].connect(self.openSet)
4. 显示当前登录用户和登录时间
      在主窗体的状态栏中可以显示当前的登录用户、登录时间和版权信息,其中,当前登录用户可以通过公共模块service中的全局变量userName获取,而登录时间可以使用PyQt5中的QDateTime类的currentDateTime()方法获取。
8. 年级设置模块设计
      使用数据表:tb_grade、tb_class
1. 年级设置模块概述
      年级设置模块用来维护年级的基本信息,包括对年级信息的添加、修改和删除等操作。在系统主窗体的菜单栏中选择“基本设置”→“年级设置”菜单,可以进入年级设置模块。       班级设置模块和用户信息维护模块的实现原理与年级设置模块类似。
2. 模块导入
      年级设置模块在grade.py文件中实现,在该文件中,首先导入公共模块。
from PyQt5.QtWidgets import *import syssys.path.append("../") # 设置模块的搜索路径from service import service
      在导入service公共模块之前,使用了代码sys.path.append(“…/”),该代码的作用是将当前路径的上一级添加到模块搜索路径中。service.py模块文件在service文件夹中,而grade.py文件在settings文件夹中,两者不在同一级目录下,所以,如果直接添加service模块,会出现找不到模块的情况,而使用sys.path.append(“…/”)后,相当于将搜索路径定位到当前路径的上一级,而上一级有service文件夹,因此就可以使用“from…import…”的形式导入service文件夹下的公共模块了。
3. 窗体加载时显示所有年级信息
      级设置模块运行时,首先将数据库中存储的所有年级信息显示在表格中,这主要是通过自定义方法query()实现的。在该方法中,调用service公共模块中的query()方法从tb_grade数据表中获取所有数据,并显示在表格中。
# 查询年级信息,并显示在表格中def query(self):self.tbGrade.setRowCount(0) # 清空表格中的所有行result = service.query("select * from tb_grade") # 调用服务类中的公共方法执行查询语句row = len(result) # 取得记录个数,用于设置表格的行数self.tbGrade.setRowCount(row) # 设置表格行数self.tbGrade.setColumnCount(2) # 设置表格列数# 设置表格的标题名称self.tbGrade.setHorizontalHeaderLabels(['年级编号', '年级名称'])for i in range(row): # 遍历行for j in range(self.tbGrade.columnCount()): # 遍历列data = QTableWidgetItem(str(result[i][j])) # 转换后可插入表格self.tbGrade.setItem(i, j, data) # 设置每个单元格的数据
4. 年级信息的添加
      在添加年级信息时,首先需要判断要添加的年级是否存在,这里定义一个getName()方法,根据年级名称在tb_grade数据表中查询数据,并返回结果集中的数量,如果该数量大于0,说明已经存在相应年级;否则,说明数据表中没有要添加的年级,这时用户即可正常进行添加操作。
def getName(self,name):result = service.query("select * from tb_grade where gradeName = %s", name)return len(result)
      自定义一个add()方法,用来实现添加年级信息的功能,在该方法中,首先需要调用上面自定义的getName()方法判断是否可以正常添加,如果可以,则调用service公共模块中的exec()方法执行添加年级信息的SQL语句,并刷新表格,以显示最新添加的年级。
# 添加年级信息def add(self):gradeID = self.editID.text() # 记录输入的年级编号gradeName = self.editName.text() # 记录输入的年级名称if gradeID != "" and gradeName != "": # 判断年级编号和年级名称不为空if self.getName(gradeName)>0:self.editName.setText("")QMessageBox.information(None, '提示', '您要添加的年级已经存在,请重新输入!', QMessageBox.Ok)else:# 执行添加语句result = service.exec("insert into tb_grade(gradeID,gradeName) values (%s,%s)", (gradeID, gradeName))if result > 0: # 如果结果大于0,说明添加成功self.query() # 在表格中显示最新数据QMessageBox.information(None, '提示', '信息添加成功!', QMessageBox.Ok)else:QMessageBox.warning(None, '警告', '请输入数据后,再执行相关操作!', QMessageBox.Ok)
      将自定义的add()方法与“添加”按钮的clicked信号关联,以便在单击“添加”按钮时,调用add()方法添加年级信息。
self.btnAdd.clicked.connect(self.add) # 绑定添加按钮的单击信号
5. 年级信息的修改
      在修改年级信息时,首先需要确定要修改的年级,因此,定义一个getItem()方法,用来获取表格中选中的年级编号。
# 获取选中的表格内容def getItem(self, item):if item.column() == 0: # 如果单击的是第一列self.select = item.text() # 获取单击的单元格文本self.editID.setText(self.select) # 显示在文本框中
      将定义的getItem()方法与表格的项单击信号itemClicked关联。
self.tbGrade.itemClicked.connect(self.getItem) # 获取选中的单元格数据
      定义一个edit()方法,首先判断是否选择了要修改的年级,如果没有,弹出信息提示,否则,调用service公共模块中的exec()方法执行修改年级信息的SQL语句,并刷新表格,以显示修改指定年级后的最新数据。
# 修改年级信息def edit(self):try:if self.select != "": # 判断是否选择了要修改的数据gradeName = self.editName.text() # 记录修改的年级名称if gradeName != "": # 判断年级名称不为空if self.getName(gradeName) > 0:self.editName.setText("")QMessageBox.information(None, '提示', '您要修改的年级已经存在,请重新输入!', QMessageBox.Ok)else:# 执行修改操作result = service.exec("update tb_grade set gradeName= %s where gradeID=%s", (gradeName, self.select))if result > 0: # 如果结果大于0,说明修改成功self.query() # 在表格中显示最新数据QMessageBox.information(None, '提示', '信息修改成功!', QMessageBox.Ok)except:QMessageBox.warning(None, '警告', '请先选择要修改的数据!', QMessageBox.Ok)
      将自定义的edit()方法与“修改”按钮的clicked信号关联,以便在单击“修改”按钮时,调用edit()方法修改年级信息。
self.btnEdit.clicked.connect(self.edit) # 绑定修改按钮的单击信号
6. 年级信息的删除
      定义一个delete()方法,首先判断是否选择了要删除的年级,如果没有,弹出信息提示,否则,调用service公共模块中的exec()方法执行删除年级信息的SQL语句,并删除该年级所包含的所有班级,最后刷新表格,以显示删除指定年级后的最新数据。
# 删除年级信息def delete(self):try:if self.select != "": # 判断是否选择了要删除的数据# 执行删除年级操作result = service.exec("delete from tb_grade where gradeID= %s", (self.select,))if result > 0: # 如果结果大于0,说明删除成功self.query() # 在表格中显示最新数据# 删除年级下的所有班级result = service.exec("delete from tb_class where gradeID= %s", (self.select,))if result > 0: # 如果结果大于0,说明删除成功self.query() # 在表格中显示最新数据QMessageBox.information(None, '提示', '信息删除成功!', QMessageBox.Ok)except:QMessageBox.warning(None, '警告', '请先选择要删除的数据!', QMessageBox.Ok)
      将自定义的delete()方法与“删除”按钮的clicked信号关联,以便在单击“删除”按钮时,调用delete()方法删除年级信息。
self.btnDel.clicked.connect(self.delete) # 绑定删除按钮的单击信号
9. 学生信息管理模块设计
      使用的数据表:tb_student、tb_grade、tb_class、v_classinfo、v_studentinfo。
1. 学生信息管理模块概述
      学生信息管理模块用来管理学生的基本信息,包括学生信息的添加、修改、删除、基本查询等功能。在系统主窗体的菜单栏中选择“基本信息管理/学生管理”菜单,可以进入该模块。
2. 根据年级显示对应班级
      自定义一个bindGrade()方法,主要使用service公共模块中的query()方法从tb_grade表中获取所有年级的名称,并显示在“所属年级”下拉列表中。
# 获取所有年级,显示在下拉列表中def bindGrade(self):self.cboxGrade.addItem("所有")result = service.query("select gradeName from tb_grade") # 从年级表中查询数据for i in result: # 遍历查询结果self.cboxGrade.addItem(i[0]) # 在下拉列表中显示年级
      自定义一个bindClass()方法,主要使用service公共模块中的query()方法从v_classinfo视图中获取指定年级所包含的所有班级的名称,并显示在“所属班级”下拉列表中。
# 根据年级获取相应班级,显示在下拉列表中def bindClass(self):self.cboxClass.clear() # 清空列表self.cboxClass.addItem("所有") # 增加首选项result = service.query("select className from v_classinfo where gradeName=%s",self.cboxGrade.currentText()) # 从年级视图中查询数据for i in result: # 遍历查询结果self.cboxClass.addItem(i[0]) # 在下拉列表中显示班级
      将自定义的bindClass()方法绑定到“所属年级”下拉列表的currentIndexChanged信号,以便在选择年级时,执行bindClass()方法。
self.cboxGrade.currentIndexChanged.connect(self.bindClass) # 根据年级绑定班级列表
3. 学生信息查询
      加载学生信息管理模块时,会显示所有的学生信息,而在选择了年级和班级后,单击“刷新”按钮,可以显示指定年级下的指定班级的所有学生信息,该功能主要是通过自定义的query()方法实现的。在该方法中,主要调用service公共模块中的query()方法执行相应的SQL查询语句,并将查询到的学生信息显示在表格中。
# 查询学生信息,并显示在表格中def query(self):self.tbStudent.setRowCount(0) # 清空表格中的所有行gname = self.cboxGrade.currentText() # 记录选择的年级cname = self.cboxClass.currentText() # 记录选择的班级# 获取所有学生信息if gname == "所有":result = service.query("select stuID,stuName,CONCAT(gradeName,className),sex,age,address,phone from v_studentinfo")# 获取指定年级学生信息elif gname != "所有" and cname == "所有":result = service.query("select stuID,stuName,CONCAT(gradeName,className),sex,age,address,phone from v_studentinfo where gradeName=%s", gname)# 获取指定年级指定班的学生信息elif gname != "所有" and cname != "所有":result = service.query("select stuID,stuName,CONCAT(gradeName,className),sex,age,address,phone from v_studentinfo where gradeName=%s and className=%s",gname, cname)row = len(result) # 取得记录个数,用于设置表格的行数self.tbStudent.setRowCount(row) # 设置表格行数self.tbStudent.setColumnCount(7) # 设置表格列数# 设置表格的标题名称self.tbStudent.setHorizontalHeaderLabels(['学生编号', '学生姓名', '班级', '性别', '年龄', '家庭地址', '联系电话'])for i in range(row): # 遍历行for j in range(self.tbStudent.columnCount()): # 遍历列data = QTableWidgetItem(str(result[i][j])) # 转换后可插入表格self.tbStudent.setItem(i, j, data) # 设置每个单元格的数据
4. 添加学生信息
      单击“添加”按钮,可以将用户选择和输入的信息添加到学生信息表中,该功能主要是通过自定义的add()方法实现的。add()方法实现的关键是,获取所选年级和班级的ID,然后执行insert into添加语句,向tb_student数据表中添加新数据。
# 添加学生信息def add(self):stuID = self.editID.text() # 记录学生编号stuName = self.editName.text() # 记录学生姓名age = self.editAge.text() # 记录年龄sex = self.cboxSex.currentText() # 记录性别phone = self.editPhone.text() # 记录电话address = self.editAddress.text() # 记录地址if self.cboxGrade.currentText() != "" and self.cboxGrade.currentText() != "所有": # 如果选择了年级# 获取年级对应的IDresult = service.query("select gradeID from tb_grade where gradeName=%s", self.cboxGrade.currentText())if len(result) > 0: # 如果结果大于0gradeID = result[0] # 记录选择的年级对应的IDif self.cboxClass.currentText() != "" and self.cboxClass.currentText() != "所有": # 如果选择了班级# 获取班级对应的IDresult = service.query("select classID from tb_class where gradeID=%s and className=%s", gradeID,self.cboxClass.currentText())if len(result) > 0: # 如果结果大于0classID = result[0] # 记录选择的班级对应的IDif stuID != "" and stuName != "": # 判学生编号和学生姓名不为空if self.getName(stuID) > 0: # 判断已经存在该记录self.editID.setText("") # 清空学生编号文本框QMessageBox.information(None, '提示', '您要添加的学生编号已经存在,请重新输入!', QMessageBox.Ok)else:# 执行添加语句result = service.exec("insert into tb_student(stuID,stuName,classID,gradeID,age,sex,phone,address) values (%s,%s,%s,%s,%s,%s,%s,%s)",(stuID, stuName, classID, gradeID, age, sex, phone, address))if result > 0: # 如果结果大于0,说明添加成功self.query() # 在表格中显示最新数据QMessageBox.information(None, '提示', '信息添加成功!', QMessageBox.Ok)else:QMessageBox.warning(None, '警告', '请输入数据后,再执行相关操作!', QMessageBox.Ok)else:QMessageBox.warning(None, '警告', '请先添加年级!', QMessageBox.Ok)
5. 根据选中编号显示学生详细信息
      当用户在显示学生信息的表格中单击某学生编号时,可以通过单击的编号获取该学生的详细信息,并显示到相应的文本框和下拉列表中,该功能是通过自定义的getItem()方法实现的。
# 获取选中的表格内容def getItem(self, item):if item.column() == 0: # 如果单击的是第一列self.select = item.text() # 获取单击的单元格文本self.editID.setText(self.select) # 显示在学生编号文本框中# 根据学生编号查询学生信息result = service.query("select * from v_studentinfo where stuID=%s",item.text())self.editName.setText(result[0][1]) # 显示学生姓名self.editAge.setText(str(result[0][2])) # 显示年龄self.editPhone.setText(result[0][4]) # 显示电话self.editAddress.setText(result[0][5]) # 显示地址self.cboxSex.setCurrentText(result[0][3]) # 显示性别
      将定义的getItem()方法与表格的项单击信号itemClicked关联。
self.tbStudent.itemClicked.connect(self.getItem) # 获取选中的单元格数据
6. 修改学生信息
      单击“修改”按钮,可以修改指定学生的信息,该功能主要是通过自定义的edit()方法实现的。在edit()方法中,首先需要判断是否选择了要修改的学生编号,如果没有,弹出信息提示;否则,执行update修改语句,修改tb_student数据表中的指定记录,并且刷新表格,以显示修改指定学生信息后的最新数据。
# 修改学生信息def edit(self):try:if self.select != "": # 判断是否选择了要修改的数据stuID = self.select # 记录要修改的学生编号age = self.editAge.text() # 记录年龄sex = self.cboxSex.currentText() # 记录性别phone = self.editPhone.text() # 记录电话address = self.editAddress.text() # 记录地址# 执行修改操作result = service.exec("update tb_student set age=%s ,sex= %s,phone= %s,address= %s where stuID=%s",(age, sex, phone, address, stuID))if result > 0: # 如果结果大于0,说明修改成功self.query() # 在表格中显示最新数据QMessageBox.information(None, '提示', '信息修改成功!', QMessageBox.Ok)except:QMessageBox.warning(None, '警告', '请先选择要修改的数据!', QMessageBox.Ok)
7. 删除学生信息
      单击“删除”按钮,可以删除指定学生的信息,该功能主要是通过自定义的delete()方法实现的。在delete()方法中,首先需要判断是否选择了要删除的学生编号,如果没有,弹出信息提示;否则,执行delete删除语句,删除tb_student数据表中的指定记录,并且刷新表格,以显示删除指定学生信息后的最新数据。
# 删除学生信息def delete(self):try:if self.select != "": # 判断是否选择了要删除的数据# 执行删除操作result = service.exec("delete from tb_student where stuID= %s", (self.select,))if result > 0: # 如果结果大于0,说明删除成功self.query() # 在表格中显示最新数据QMessageBox.information(None, '提示', '信息删除成功!', QMessageBox.Ok)except:QMessageBox.warning(None, '警告', '请先选择要删除的数据!', QMessageBox.Ok)
10. 学生信息表查询模块设计
      使用的数据表:v_studentinfo。
1. 学生信息查询模块概述
      学生信息查询模块用来根据学生编号或者学生姓名查询学生的相关信息。在系统主窗体的菜单栏中选择“系统查询”→学生信息查询”菜单,可以进入该模块。
2. 学生信息查询功能的实现
      学生信息的查询功能主要是通过自定义的query()方法实现的,在查询学生信息时,有以下3种情况。
查询所有学生信息:调用公共模块service中的query()方法精确查询;根据学生编号查询学生信息:调用公共模块service中的query2()方法模糊查询;根据学生姓名查询学生信息:调用公共模块service中的query2()方法模糊查询。
# 查询学生信息,并显示在表格中def query(self):self.tbStudent.setRowCount(0) # 清空表格中的所有行# 获取所有学生信息if self.editKey.text() == "":result = service.query("select stuID,stuName,CONCAT(gradeName,className),sex,age,address,phone from v_studentinfo")else:key = self.editKey.text() # 记录查询关键字# 根据学生编号查询信息if self.cboxCondition.currentText() == "学生编号":sql="select stuID,stuName,CONCAT(gradeName,className),sex,age,address,phone from v_studentinfo where stuID like '%" + key + "%'"result = service.query2(sql)# 根据学生姓名查询信息elif self.cboxCondition.currentText() == "学生姓名":sql = "select stuID,stuName,CONCAT(gradeName,className),sex,age,address,phone from v_studentinfo where stuName like '%" + key + "%'"result = service.query2(sql)row = len(result) # 取得记录个数,用于设置表格的行数self.tbStudent.setRowCount(row) # 设置表格行数self.tbStudent.setColumnCount(7) # 设置表格列数# 设置表格的标题名称self.tbStudent.setHorizontalHeaderLabels(['学生编号', '学生姓名', '班级', '性别', '年龄', '家庭地址', '联系电话'])for i in range(row): # 遍历行for j in range(self.tbStudent.columnCount()): # 遍历列data = QTableWidgetItem(str(result[i][j])) # 转换后可插入表格self.tbStudent.setItem(i, j, data) # 设置每个单元格的数据
      本节按一个完整项目的开发过程讲解学生信息系统的实现:从前期的需求分析、系统设计,到数据库设计及公共模块设计,再到最终各个功能模块设计。       学习本节我们能熟悉学生信息管理的流程,并熟练掌握使用Python结合MySQL数据库进行项目开发的相关技术。 完整的项目代码:https://download.csdn.net/download/ungoing/86764820查看全文相关文章数据库建立索引规则 达梦数据库索引的创建与测试 django-数据库访问优化-建立数据库的索引 数据库建立索引的优缺点 数据库建立索引怎么利用索引查询 数据库建立索引的原则 为什么不建议在MySQL中使用 utf8?MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 utf8mb4。
如果使用 utf8 的话,存储 emoji 符号和一些比较复杂的汉字、繁体字就会出错。
为什么会这样呢?这篇文章可以从源头给你解答。
何为字符集?
字符是各种文字和符号的…...2023/7/1 7:50:41Day05-尚品汇-search模块根据不同的参数获取数据展示提出问题1哈:
我们现在的search模块里面请求只能发送一次,就是因为你小子把dispatch()写在了mouted()里面了。
当你先搜索手机后,再想搜索华为手机,(此时不发请求了&am…...2023/7/19 6:04:00Pycharm配置运行参数分享运行代码的个小技巧:
在跑python程序中,一般都会使用argparse工具包在运行过程中传递参数,然后在终端设置运行,比如: python tools/analysis_tools/analyze_logs.py plot_curve work_dirs/3dssd_4x4_kitti-3d-car…...2023/7/10 6:16:10高阶数据结构 —— 红黑树(较平衡搜索树)文章目录1. 红黑树的概念1.1 红黑树的性质1.2 红黑树效率的分析2. 红黑树的旋转2.1 情况一2.2 情况二2.3 情况三2.4 对以上三种情况的总结3. 红黑树的实现3.1 红黑树的节点3.2 红黑树的私有成员以及构造3.3 红黑树的插入3.3.1 左右单旋 的代码:3.3.2 插入的代码3.4 …...2023/7/19 13:42:04(刘二大人)PyTorch深度学习实践-Logistic回归实现1.代码实现(lr0.01)
import numpy as np
import torch
import torch.nn.functional as F
from torch.utils.tensorboard import SummaryWriter#使用tensorboard进行记录
writer SummaryWriter(log_dir../LEDR)#准备数据集
x_data torch.Tensor([[1.0]…...2023/7/11 20:39:27Linux服务器部署Mysql5.7全过程记录1、先下载安装包文件
mysql-5.7.27-linux-glibc2.12-x86_64.tar Mysql5.7.27 Linux安装包
链接:https://pan.baidu.com/s/1p4KmDp5O2bGJLXUHOHMQFQ 提取码:4692
2、解压 cd /usr/local 切换到安装包所在目录 tar -zxvf mysql-5.7.30-l…...2023/7/14 18:27:37R语言:多因素Cox回归森林图 (基于forestplot包) 森林图 cox可视化欢迎大家关注我的公众号:一只勤奋的科研喵 文章来源:R语言|12. 森林图-1: 多因素Cox回归模型森林图 (基于forestplot包) 本期开始介绍Cox回归模型可视化。 之前学习过的的临床回归模型可视化方法主要是森林图和列线图 (Nomogram)。 计划是介绍一下单因素…...2023/7/5 22:41:13基于JAVA道路桥梁工程知识文库系统计算机毕业设计源码+系统+lw文档+部署基于JAVA道路桥梁工程知识文库系统计算机毕业设计源码系统lw文档部署 基于JAVA道路桥梁工程知识文库系统计算机毕业设计源码系统lw文档部署本源码技术栈:
项目架构:B/S架构
开发语言:Java语言
开发软件:idea eclipse
前端技术…...2023/7/13 14:21:4615 个实用的 Linux find 命令示例除了在目录结构下查找文件的基本操作外,我们还可以使用 find 命令执行一些实际操作,这将使我们的命令行之旅变得轻松。
在本文中,让我们回顾 15 个 Linux find 命令的实际示例,它们对新手和专家都非常有用。
首先,在…...2023/7/12 5:07:36【ZooKeeper】ZooKeeper企业应用ZooKeeper 应用场景分布式锁独占实现Active Master选举分布式时序锁实现分布式队列分布式集群配置管理分布式锁独占实现Active Master选举
分布式选举,所采用的时分布式锁实现。 整体架构思路: 选举机制执行步骤: 初始状态:
/c…...2023/7/18 4:28:53微信小程序调用腾讯地图选点业务: 小程序中实现选择地址 解决方案: 1.在小程序后台的设置>第三方设置>在插件管理中添加插件搜索>腾讯位置服务地图选点 2.插件引入后可以点击详情查看文档 (1)首先在app.json中添加插件 //app.json "plugins&qu…...2023/6/23 16:03:24【甄选靶场】Vulnhub百个项目渗透——项目三十九:BillyMadison-1.1(wifi爆破,目录爆破,文件爆破)Vulnhub百个项目渗透
Vulnhub百个项目渗透——项目三十九:BillyMadison-1.1(wifi爆破,目录爆破,文件爆破) 🔥系列专栏:Vulnhub百个项目渗透 🎉欢迎关注🔎点赞&#x1f4…...2023/6/24 20:13:20Linux05开机/重启/用户登录注销目录 一、关机&重启命令
1.基本指令
2.注意事项
二、用户登录和注销
1.概述
2.注意事项 一、关机&重启命令
1.基本指令 shutdown -h now 立该进行关机shutdown -h num num分钟后关机shutdown …...2023/6/21 6:19:59kettle 入门配置1 kettle 介绍
kettle(水壶)是一个 免费开源的 Extract-Transform-Load (ETL) 工具 ,被 Pentaho 集团收购,并更名为 Pentaho Data Integration (PDI ) 当中又包含了四大厨房厨具相关的扮演了重要角色的模块…...2023/7/3 23:49:52[附源码]Java计算机毕业设计SSM巴州监控中心人事管理系统项目运行
环境配置:
Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术:
SSM mybatis Maven Vue 等等组成,B/S模式 M…...2023/7/17 5:41:43web前端面试题附答案034-从数组[1,2,3,4]里找到2,拿出来,你怎么写?有个注意项很多人都忘了这道题很简单,就是遍历一个数组,然后判断元素值等于2,就往出取值呗。 这里可能只是一个缩影,现实项目中也不会给你这么一个数组的,可能数组有更多的元素,可能每个元素不再是一个数值型,可能是一…...2023/6/26 7:59:08你好,Cartesi Rollups Alpha 0.6.1你是不是现在迫不及待的想深入研究最新版本的 Cartesi Rollups? 如果是,一起来吧,我们为你准备好了一切。此版本的发布标志着我们已经完成了开发路线图中的两个里程碑节点。它们是通往主网 MIII 和验证节点 MII ,目前均已100%完成…...2023/7/8 8:24:59Qt windeployqt打包分析Qt程序打包一般流程:
开始菜单 - 打开Qt对应编译器命令行 - 输入windeployqt test.exe命令
那么,这个过程经历了什么呢?这个就是今天要分析的主题。
前置知识 - cmd命令
echo
回显
echo off #从本行开始关闭回显。一般批处理第一行都是…...2023/6/26 5:14:28扶贫信息管理系统摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于扶贫信息管理当然也不能排除在外,随着网络技术的不断成熟,带动了扶贫信息的管理,它彻底改变了过去传统…...2023/7/7 2:28:39实验二.常用网络命令常用网络命令一、实验目的与要求学习常用网络命令的使用方法熟悉主机的基本网络配置 二、预习与准备网络常用命令及基本用法。主机的基本网络配置信息。 三、 实验内容 1.Ping命令 2.ipconfig命令 3.arp命令(地址转换协议) 4.traceroute命令 5.route命令…...2023/6/26 12:26:39最新文章ChatGPT:革命性的自然语言处理技术自然语言处理(NLP)技术的快速发展已经为我们的日常生活带来了巨大的变革。在这个领域,ChatGPT作为一个突出的代表,正在为我们带来更多的便利和机会。本文将介绍ChatGPT的基本概念、应用领域以及它在未来可能带来的影响。
ChatGPT…...2023/9/3 15:07:30非科班菜鸡算法学习记录 | 代码随想录算法训练营第53天|| 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 动态规划1143. 最长公共子序列
知识点:动规 状态:不会 思路:
用dpij表示两个串中到i-1和j-1个字符结束的最长公共子序列长度(不用特殊初始化)
class Solution {
public:int longestCommonSubsequence(string text1, string …...2023/9/3 15:06:40uniApp常见面试题-附详细答案uniApp中如何进行页面跳转? 答案:可以使用uni.navigateTo、uni.redirectTo和uni.reLaunch等方法进行页面跳转。其中,uni.navigateTo可以实现页面的普通跳转,uni.redirectTo可以实现页面的重定向跳转,uni.reLaunch可以实…...2023/9/3 15:06:18git大文件推送报错报错信息
不多掰扯,直接上报错信息和截图
Delta compression using up to 8 threadsRPC failde; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large从以上的报错信息不难看出推送仓库的时候,请求体过大,为…...2023/9/3 15:05:05java八股文面试[多线程]——newWorkStealingPoolnewWorkStealingPool是什么? newWorkStealingPool简单翻译是任务窃取线程池。
newWorkStealingPool 是Java8添加的线程池。和别的4种不同,它用的是ForkJoinPool。
使用ForkJoinPool的好处是,把1个任务拆分成多个“小任务”,把这…...2023/9/3 15:03:57在不同操作系统上如何安装符号表提取工具(eu-strip)前言
C开发的小伙伴都知道符号表在调试和解决崩溃时扮演着非常重要的角色,那么如何提取和保存发布应用程序的符号表就变得非常重要。今天就来聊一下如何在不同的操作系统上使用eu-strip提取应用程序中的符号表信息。
正文
问题
如何在不同操作系统上安装符号表提…...2023/9/3 15:03:12【算法刷题-栈与队列篇】目录 1.leetcode-232. 用栈实现队列2.leetcode-225. 用队列实现栈3.leetcode-20. 有效的括号(1)代码1(2)代码2 4.leetcode-1047. 删除字符串中的所有相邻重复项5.leetcode-150. 逆波兰表达式求值6.leetcode-239. 滑动窗口最大值7.…...2023/9/3 15:02:52Python零基础超详细教程:字典(Dictionary)相关介绍使用前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~! Python字典是另一种可变容器模型,
且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取
一、创建字典
字典由键和对应值…...2023/9/3 15:02:38IDM2024Internet Download Manager下载器最新版本IDM(Internet Download Manager)下载器主窗口的左侧是下载类别的分类,提供了分类功能来组织和管理文件。如果不需要它,可以删除“分类”窗口,并且在下载文件时不选择任何分类。
每个下载类别都有一个名称,…...2023/9/3 15:01:52(位运算) 剑指 Offer 15. 二进制中1的个数 ——【Leetcode每日一题】❓ 剑指 Offer 15. 二进制中1的个数
难度:简单
编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。
提示&#xff…...2023/9/3 15:01:41HttpClient 绕过证书验证- sun.security.validator.ValidatorException: PKIXsun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 问题 package com.example.demo.test;import com.alibaba.fastjson2.JS…...2023/9/3 15:01:29单目标应用:基于麻雀搜索算法SSA的微电网优化调度MATLAB一、微网系统运行优化模型 参考文献:
[1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7
二、麻雀搜索算法简介
麻雀搜索算法 (Sparrow Search Algorithm, SSA) 是一种新型的群智能优化算法,于2020…...2023/9/3 15:00:42ip地址、LINUX、与虚拟机子网掩码,是用来固定网络号的,例如255,255,255,0,表明前面三段必须为网络号,后面必须是主机号,那么怎么实现网络复用呢,例如使用c类地址,但是正常子网掩码是255,255,255,…...2023/9/3 15:00:21线程、并发相关---第一篇系列文章目录 文章目录 系列文章目录一、线程的生命周期?线程有几种状态二、sleep()、wait()、join()、yield()的区别一、线程的生命周期?线程有几种状态
1.线程通常有五种状态,创建,就绪,运行、阻塞和死亡状态。 2.阻塞的情况又分为三种: (1)、等待阻塞:运行的线程执行…...2023/9/3 14:59:48CXL.cache H2D/D2H 请求响应对应关系🔥点击查看精选 CXL 系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…...2023/9/3 14:59:34近年GDC服务器分享合集(四): 《火箭联盟》:为免费游玩而进行的扩展如今,网络游戏采用免费游玩(Free to Play)加内购的比例要远大于买断制,这是因为前者能带来更低的用户门槛。甚至有游戏为了获取更多的用户,选择把原来的买断制改为免费游玩,一个典型的例子就是最近的网易的…...2023/9/3 14:59:00docker笔记3 Docker常规安装1.安装tomcat
docker hub上面查找tomcat镜像 docker search tomcat
从docker hub上拉取tomcat镜像到本地
docker pull tomcat docker images查看是否有拉取到的tomcat 使用tomcat镜像创建容器实例(也叫运行镜像) docker run -it -p 8080:8080 tomcat
-p 小写,主…...2023/9/3 14:58:29TensorRT来加速YOLO v5推理与检测TensorRT来加速YOLO v5推理与检测 文章目录 TensorRT来加速YOLO v5推理与检测TensorRT简介一、TensorRT安装1. 电脑基础环境2. 查看 cuda 版本3. 安装TensorRT4. 验证TensorRT 二、YOLO v5模型导出函数1.onnx 模型导出(def export_onnx()函数…...2023/9/3 14:57:48两个线程同步执行:解决乱箭穿心(STL/Windows/Linux)C自学精简教程 目录(必读)
C并发编程入门 目录
多线程同步
线程之间同步是指线程等待其他线程执行完某个动作之后再执行(本文情况)。
线程同步还可以是像十字路口的红绿灯一样,只允许一个方向的车同行,其他方向的车等待。
本…...2023/9/3 14:56:30类的静态成员变量 static memberC自学精简教程 目录(必读)
类的静态成员 static member 变量全局只有一份副本,不会随着类对象的创建而产生副本。
static 静态成员
在类的成员变量前面增加static关键字,表示这个成员变量是类的静态成员变量。
#include <iostream>
using name…...2023/9/3 14:56:16【ChatGPT】AI 大模型的幕后英雄 GPU King NVIDIA : 英伟达公司为什么会成功?—— 人工智能领域的领导者【ChatGPT】AI 大模型的幕后英雄 GPU King NVIDIA : 英伟达公司为什么会成功? 文章目录 【ChatGPT】AI 大模型的幕后英雄 GPU King NVIDIA : 英伟达公司为什么会成功?前言第一章:英伟达公司的创立和早期历史第二章:英伟达公司的成功转型第三章:英伟达公司的产品和技术显…...2023/9/2 11:33:45chatgpt在哪用?详谈一下gpt的各方面ChatGPT是一种人工智能技术,它可以通过自然语言交互回答各种问题。这种技术已经被广泛应用于各个领域和场景中,帮助人们更好地获取知识和信息。那么,ChatGPT在哪里使用呢?下面我们来探讨一下。 一.chatgpt在哪用
打开任意的浏览器…...2023/9/2 11:13:293款好用的IntelliJ IDEA ChatGPT插件今天,给大家介绍3款好用的IntelliJ IDEA ChatGPT插件,各有千秋,可以帮我自动写代码,自动改善代码性能和安全并且生成视图对比,以及解释代码,优化代码,生成单元测试用例,更牛逼的是直接可以根据描…...2023/9/2 11:33:45ChatGPT平替工具claude,无需梯子,保姆级安装教程前言
最近炒的最火的就属chatgpt了,他的强大功能让每个人忍不住都想去尝试一下,但是高大上的门槛,让很多人望而却步,目前在国内还没有开放ChatGPT的注册和使用,“科学上网”这道难关就难住了许多人,特别是…...2023/9/3 7:19:59ChatGPT 国内镜像网站独家汇总:发现最优秀的人工智能对话体验欢迎来到我们的 ChatGPT 镜像网站汇总博客!在这个令人激动的人工智能时代,ChatGPT 作为一款顶尖的语言模型,已经引起了全球范围内的热议。但是,您是否曾经为了找到最佳的 ChatGPT 使用体验而苦苦搜寻?别担心&#xff0…...2023/9/2 18:59:43ChatGPT自然语言处理的新里程碑ChatGPT中文网是一个面向中国用户的聊天机器人网站,旨在为国内用户提供一个自然的环境、有趣、实用的聊天体验。它使用最新的自然语言处理技术来帮助用户更好地理解他们的聊天对话,还可以帮助用户解决日常生活中的问题,提供有趣的谈话内容以及…...2023/9/2 11:33:44【利用ChatGPT学习英语口语(包括如何安装插件的详细教程)】内容目录 一、插入ChatGPT语音播放插件1. 打开谷歌浏览器——右上角三点——更多工具——扩展程序2. 点击扩展程序三个横杠——打开chrome 应用商店3. 搜索Voice Control for ChatGPT——点击如下图第一个——添加至Chrome——添加扩展程序4. 成功安装,打开ChatGPT有…...2023/9/2 11:33:43学习笔记:吴恩达ChatGPT提示工程以下为个人笔记,原课程网址Short Courses | Learn Generative AI from DeepLearning.AI
01 Introduction
1.1 基础LLM
输入
从前有一只独角兽,输出
它和其他独角兽朋友一起住在森林里输入
法国的首都在哪?输出
法国的首都在哪&#xf…...2023/9/2 11:33:43ChatGPT对未来编程语言发展的影响与展望目录 一、引言1.ChatGPT的介绍与背景介绍背景 2.编程语言发展的重要性和挑战重要性挑战 二、ChatGPT在编程领域的应用1.自然语言处理技术在编程中的应用现状2. ChatGPT作为编程辅助工具的潜力与优势 三、ChatGPT对编程语言发展的影响1. 创新编程模式的涌现2. 语言设计与交互方式…...2023/9/2 11:33:43一文带你读懂什么是ChatGPT?文章目录 前言ChatGPT的发展历史ChatGPT初体验ChatGPT的未来展望提高聊天机器人的对话能力改进聊天机器人的生成能力提高聊天机器人的个性化能力加强聊天机器人的安全性 总结福利彩蛋 前言 橙子送书第1期!文末参与活动,即可包邮到家。为即将或正在使用Ja…...2023/9/2 11:33:42我,ChatGPT,打钱「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 一、ChatGPT是个啥?
chat:表示“聊天”。
GPT:则是G…...2023/9/3 9:36:57ChatGPT|LangChain介绍什么是LangChain?
使用ChatGPT大家可能都是知道prompt,
(1)想像一下,如果我需要快速读一本书,想通过本书作为prompt,使用ChatGPT根据书本中来回答问题,我们需要怎么做&#xff1f…...2023/9/2 11:33:42让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer implement Transformer Model by Tensor flow Kerasimplement Bert model by Tensor flow Kerasimplement GPT model by Tensor flow Keras 本文主要展示Transfomer, Bert, GPT的神经网络结构之间的关系和差异。网络上…...2023/9/2 11:33:41chatgpt生成【2023高考作文】北京卷一 - 续航“续航”一词,原指连续航行,今天在使用中被赋予了新的含义,如为青春续航、科技为经济发展续航等。 请以“续航”为题目,写一篇议论文。 要求:论点明确,论据充实,论证合理;语言流畅&a…...2023/9/2 11:33:41三分钟搭建一个自己的 ChatGPT (从开发到上线)原文链接:https://icloudnative.io/posts/build-chatgpt-web-using-laf/ 视频教程:https://www.bilibili.com/video/BV1cx4y1K7B2/ 前提条件:你需要准备一个 ChatGPT 账号并且生成一个 API Key (这一步可以问 Google ) 云函数教学
首先需要登…...2023/9/2 11:33:41自制ChatGPT批量生成文章多线程 多Key Python脚本本文转载自:自制ChatGPT批量生成文章多线程 多Key Python脚本
更多内容请访问钻芒博客:https://www.zuanmang.net
简单 多线程GPT3.5模型:
特有需求,生成文章后会先保存txt到文章中,程序跑完之后会在生成一个文章汇…...2023/9/2 11:33:40[chatGPT攻略] 如何检测文本内容是否由ChatGPT生成 ?[chatGPT攻略] 如何检测文本内容是否由ChatGPT生成 ?
在 ChatGPT 爆火的两个月内,学生就已经自发用这种工具做作业、写论文偷懒,编剧会用它编故事试试出乎人意料的故事走向,文案编辑用它来给自己打工。 在用工具给自己省事这件事上&#xf…...2023/9/2 11:33:40IDEA装上这3款ChatGPT插件,彻底炸裂!!今天,给大家介绍3款好用的IntelliJ IDEA ChatGPT插件,各有千秋,可以帮我自动写代码,自动改善代码性能和安全并且生成视图对比,以及解释代码,优化代码,生成单元测试用例,更牛逼的是直接可以根据描…...2023/9/3 9:36:55ChatGPT是什么?目录
1.什么是ChatGPT?
2.ChatGPT的前世今生
3.ChatGPT收费标准
4.ChatGPT能做什么 1.什么是ChatGPT?
ChatGPT英文全名:Chat Generative Pre-trained Transformer,中文名:聊天生成型预训练变换模型), 顾名思义,…...2023/9/2 11:33:39chatgpt赋能python:如何取出带有4的整数如何取出带有4的整数
Python是一门功能强大的编程语言,可以轻松解决复杂的编程问题。在本文中,我们将介绍如何使用Python编程语言从一个整数列表中取出所有带有4的整数。我们将从介绍如何创建一个整数列表开始,然后编写Python代码以实现我们…...2023/9/2 11:33:39ChatGPT+智能家居在AWE引热议 OpenCPU成家电产业智能化降本提速引擎作为家电行业的风向标和全球三大消费电子展之一,4月27日-30日,以“智科技、创未来”为主题的AWE 2023在上海新国际博览中心举行,本届展会展现了科技、场景等创新成果,为我们揭示家电与消费电子的发展方向。今年展馆规模扩大至14个…...2023/9/2 11:33:39聊聊开源的类ChatGPT工作——ChatGLM这是”聊聊开源的类ChatGPT工作“的第二篇,写第一篇[7]的时候,当时恰巧MOSS开源,就顺手写了MOSS。但要问目前中文领域的“开源”的语言模型谁更强,公认的还是ChatGLM-6B(以下简称ChatGLM)。
下面是官方对C…...2023/9/2 11:33:38我发现3个国内一直能用的免费版ChatGPT 免登免注册无广告 再不赶紧保存就没啦!🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…...2023/9/2 11:33:38我用ChatGPT写2023高考语文作文(三):新课标I卷2023年 新课标I卷 适用地区:山东、福建、湖北、江苏、广东、湖南、河北、浙江 好的故事,可以帮我们更好地表达和沟通,可以触动心灵、启迪智慧;好的故事,可以改变一个人的命运,可以展现一个民族的形象……故…...2023/9/2 11:33:38漫画:ChatGPT的应用场景有哪些?第一,文案创作 ChatGPT可以通过用户输入的提示,创作出相应的文本内容。 媒体作者可以给ChatGPT提出要求,让ChatGPT根据某一主题生成的媒体文案。 广告策划人员可以把要推广的商品信息输入给ChatGPT,让ChatGPT针对此商品生成一段广…...2023/9/2 11:33:37Openai+Deeplearning.AI: ChatGPT Prompt Engineering(六)想和大家分享一下最近学习的Deeplearning.AI和openai联合打造ChatGPT Prompt Engineering在线课程.以下是我写的关于该课程的前五篇博客:
ChatGPT Prompt Engineering(一)ChatGPT Prompt Engineering(二)ChatGPT Prompt Engineering(三)ChatGPT Prompt Engineering…...2023/9/2 11:33:37chatgpt赋能python:Python在一个程序里调用另一段程序Python在一个程序里调用另一段程序
随着Python程序的复杂度越来越高,有时候一个程序难以处理所有的任务。这时候我们可能需要将任务拆分成多个脚本来执行。但是,这会导致代码的复杂性增加,同时也会增加可读性和维护成本。这时候,…...2023/9/2 11:33:37人人实现ChatGPT自由,手把手教你零撸部署自己聊天私服我们知道chat gpt最近非常的火爆,朋友圈啊,短视频到处都是chat gpt身影。
但是网上看到各种教程资源,都是不是百分一百的免费,毫无保留教给你的,要么是卖账号 要么是割韭菜的。其实没有什么可以学习的,使用…...2023/9/3 9:36:50ChatGpt写高考作文——2023北京卷题目一:
“续航”一词,原指连续航行,今天在使用中被赋予了新的含义,如为青春续航、科技为经济发展续航等。 请以“续航”为题目,写一篇议论文。 要求:论点明确,论据充实,论证合理&a…...2023/9/2 23:00:39ChatGPT时代:ChatGPT全能应用一本通摘要
ChatGPT是一款开创性的人工智能语言模型,将人类语言理解和生成的能力推向了新的高度。作为一个全能的应用,ChatGPT能够在各个领域提供帮助和指导,从教育到医疗,从娱乐到商业。本文将探讨ChatGPT时代的到来,以及其…...2023/9/2 11:33:36配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...2022/11/19 21:17:18错误使用 reshape要执行 RESHAPE,请勿更改元素数目。%读入6幅图像(每一幅图像的大小是564*564)
f1 imread(WashingtonDC_Band1_564.tif);
subplot(3,2,1),imshow(f1);
f2 imread(WashingtonDC_Band2_564.tif);
subplot(3,2,2),imshow(f2);
f3 imread(WashingtonDC_Band3_564.tif);
subplot(3,2,3),imsho…...2022/11/19 21:17:16配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...2022/11/19 21:17:15台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...2022/11/19 21:17:14win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...2022/11/19 21:17:13准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...2022/11/19 21:17:12准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...2022/11/19 21:17:11配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...2022/11/19 21:17:10电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...2022/11/19 21:17:09计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...2022/11/19 21:17:08计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...2022/11/19 21:17:05钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...2022/11/19 21:17:05配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...2022/11/19 21:17:04一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...2022/11/19 21:17:03请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...2022/11/19 21:17:02还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...2022/11/19 21:17:01电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...2022/11/19 21:17:00正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...2022/11/19 21:16:59配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...2022/11/19 21:16:58如何在iPhone上关闭“请勿打扰”Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...2022/11/19 21:16:57HomePowered By betheme