利用sqlite3和wx库搭建GUI+SQL
2021/12/12 19:20:08
本文主要是介绍利用sqlite3和wx库搭建GUI+SQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
# -*- coding:utf-8 -*-
import wx
import sqlite3
class MyFrame(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, '用户注册or查询', size=(400,300))
#创建面板
panel = wx.Panel(self)
#创建“查询”,“注册”和“取消”按钮,并绑定事件
self.bt_check = wx.Button(panel, label ='查询')
self.bt_check.Bind(wx.EVT_BUTTON,self.OnclickSubmit)
self.bt_register = wx.Button(panel, label = '注册')
self.bt_register.Bind(wx.EVT_BUTTON,self.OnclickRegister)
#创建文本和,左对齐
self.title = wx.StaticText(panel, label="请输入用户名(新用户第一次登陆请输入在注册栏)")
self.label_user = wx.StaticText(panel, label="用户名:")
self.text_user = wx.TextCtrl(panel, style=wx.TE_LEFT)
self.label_regis1 = wx.StaticText(panel,label="注册用户名")
self.text_regis1 = wx.TextCtrl(panel, style=wx.TE_LEFT)
self.label_regis2 = wx.StaticText(panel,label="注册用户学号")
self.text_regis2 = wx.TextCtrl(panel, style=wx.TE_LEFT)
#添加容器,容器中控件横向排列
hsizer_user = wx.BoxSizer(wx.HORIZONTAL)
hsizer_user.Add(self.label_user, proportion=0, flag=wx.ALL, border=5)
hsizer_user.Add(self.text_user, proportion=1, flag=wx.ALL, border=5)
hsizer_regis1 = wx.BoxSizer(wx.HORIZONTAL)
hsizer_regis1.Add(self.label_regis1, proportion=0, flag=wx.ALL, border=5)
hsizer_regis1.Add(self.text_regis1, proportion=0, flag=wx.ALL, border=5)
hsizer_regis2 = wx.BoxSizer(wx.HORIZONTAL)
hsizer_regis2.Add(self.label_regis2, proportion=0, flag=wx.ALL, border=5)
hsizer_regis2.Add(self.text_regis2, proportion=0, flag=wx.ALL, border=5)
hsizer_button = wx.BoxSizer(wx.HORIZONTAL)
hsizer_button.Add(self.bt_check, proportion=0, flag=wx.ALIGN_CENTER, border=5)
hsizer_button.Add(self.bt_register, proportion=0, flag=wx.ALIGN_CENTER, border=5)
#添加容器,容器中的空间纵向排列
vsizer_all = wx.BoxSizer(wx.VERTICAL)
vsizer_all.Add(self.title, proportion=0, flag=wx.BOTTOM | wx.TOP | wx.ALIGN_CENTER, border=15)
vsizer_all.Add(hsizer_user, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)
vsizer_all.Add(hsizer_regis1, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)
vsizer_all.Add(hsizer_regis2, proportion=0, flag=wx.EXPAND | wx.LEFT | wx.RIGHT, border=45)
vsizer_all.Add(hsizer_button, proportion=0, flag=wx.ALIGN_CENTER | wx.TOP, border=15)
panel.SetSizer(vsizer_all)
def OnclickSubmit(self,event):
"""单击查询按钮,执行方法"""
username = self.text_user.GetValue() #获取输入的用户名
conn = sqlite3.connect('StudentDate.db') #连接数据库
cursor = conn.cursor() #创建游标
cursor.execute('select * from user') #执行查询语句
result1 = cursor.fetchone() #获取查询结果
if username == "" :
message = "用户名不能为空"
wx.MessageBox(message)
elif username == str(result1[0]):
wx.MessageBox(result1[1])
else:
wx.MessageBox("用户名不正确")
def OnclickRegister(self,event):
"""单击注册按钮,执行方法"""
newName = self.text_regis1.GetValue()
newNum = self.text_regis2.GetValue()
date=(newNum,newName,)
if newName == "" or newNum == "" :
wx.MessageBox("注册名与注册学号不能为空") #弹出提示框
else:
conn = sqlite3.connect('StudentDate.db') #连接数据库
cursor = conn.cursor() #创建游标
#执行插入语句,添加学生信息
cursor.executemany("insert into user (id, name) values (?,?)", ([date[0]],[date[1]]))
cursor.close() #关闭游标
conn.commit() #提交事务
conn.close() #关闭连接
wx.MessageBox("注册成功")
if __name__ == '__main__':
app = wx.App() #初始化
frame = MyFrame(parent=None,id=-1) #实例化MyFrame类,并传递参数
frame.Show() #显示窗口
app.MainLoop() #调用主循环方法
这篇关于利用sqlite3和wx库搭建GUI+SQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2023-12-29"SQLite注入获取表名技巧"
- 2023-12-27SQLite数据库注入方式及安全性
- 2022-09-16Sqlite 并发读写的演进之路
- 2022-09-07修改ASQLite3D2010 支持中文显示
- 2022-09-0502-mORMot框架样例学习-02 - Embedded SQLite3 ORM(SQLite3 数据库)
- 2022-08-22基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper
- 2022-08-21【数据库】SQLite数据库 工具
- 2022-08-06SQLite 错误:database disk image is malformed - 数据库磁盘映像格式不正确
- 2022-07-30学生信息管理系统(QT+SQLITE实现)
- 2022-07-22SQLite 建表、增删改查 简单操作