python-3.x - 交互式数据输入应用程序并链接到服务器数据库
问题描述
我正在创建一个交互式员工信息应用程序,它将添加新数据、检索旧数据并更新它。最终我会将此应用程序链接到 SQL 服务器,以将员工信息详细信息添加和更新到员工地址簿表
我虽然得到一个wx.App must be created first!
错误
import wx
import os
app=wx.App()
class AddressBook(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,-1,"Address Book",size=(520,700))
self.panel=wx.Panel(self,-1)
self.SetBackgroundColour("#95CAE4")
self.title=wx.StaticText(self.panel,-1,"ADDRESS BOOK DATABASE",pos=(120,10))
self.firstname=wx.StaticText(self.panel,-1,"FirstName",pos=(50,50))
#self.firstname1=wx.TextCtrl(self.panel,-1,"",pos=(160,50),size=(100,20))
self.secondname=wx.StaticText(self.panel,-1,"SecondName",pos=(35,80))
#self.secondname1=wx.TextCtrl(self.panel,-1,"",pos=(160,80),size=(100,20))
self.addressline1=wx.StaticText(self.panel,-1,"Address(Line1)",pos=(30,110))
self.addressline2=wx.StaticText(self.panel,-1,"Address(Line2)",pos=(30,140))
self.addressline3=wx.StaticText(self.panel,-1,"Address(Line3)",pos=(30,170))
self.city=wx.StaticText(self.panel,-1,"City",pos=(85,200))
self.state=wx.StaticText(self.panel,-1,"State or Province",pos=(20,230))
self.zip=wx.StaticText(self.panel,-1,"Postal(zip)Code",pos=(25,260))
self.homephe=wx.StaticText(self.panel,-1,"HomePhone",pos=(40,290))
self.workphe=wx.StaticText(self.panel,-1,"WorkPhone",pos=(45,320))
self.mobile=wx.StaticText(self.panel,-1,"Mobile",pos=(70,350))
self.email=wx.StaticText(self.panel,-1,"Primary Email",pos=(35,380))
self.email2=wx.StaticText(self.panel,-1,"Secondary Email",pos=(20,410))
self.notes=wx.StaticText(self.panel,-1,"Notes",pos=(75,440))
self.firstname1=wx.TextCtrl(self.panel,-1,"",pos=(130,50),size=(170,20))
self.secondname1=wx.TextCtrl(self.panel,-1,"",pos=(130,80),size=(170,20))
self.addressline11=wx.TextCtrl(self.panel,-1,"",pos=(130,110),size=(250,20))
self.addressline21=wx.TextCtrl(self.panel,-1,"",pos=(130,140),size=(250,20))
self.addressline31=wx.TextCtrl(self.panel,-1,"",pos=(130,170),size=(250,20))
self.city1=wx.TextCtrl(self.panel,-1,"",pos=(130,200),size=(170,20))
self.state1=wx.TextCtrl(self.panel,-1,"",pos=(130,230),size=(170,20))
self.zip1=wx.TextCtrl(self.panel,-1,"",pos=(130,260),size=(170,20))
self.homephe1=wx.TextCtrl(self.panel,-1,"",pos=(130,290),size=(170,20))
self.workphe1=wx.TextCtrl(self.panel,-1,"",pos=(130,320),size=(170,20))
self.mobile1=wx.TextCtrl(self.panel,-1,"",pos=(130,350),size=(170,20))
self.email3=wx.TextCtrl(self.panel,-1,"",pos=(130,380),size=(170,20))
self.email4=wx.TextCtrl(self.panel,-1,"",pos=(130,410),size=(170,20))
self.notes1=wx.TextCtrl(self.panel,-1,"",pos=(130,440),size=(250,100),style=wx.TE_MULTILINE)
self.btn=wx.Button(self.panel,201,"save",pos=(170,570),size=(70,30))
self.btn1=wx.Button(self.panel,202,"clear all",pos=(80,570),size=(70,30))
self.btn2=wx.Button(self.panel,203,"retrieve",pos=(260,570),size=(70,30))
self.Bind(wx.EVT_BUTTON,self.retrive,id=203)
self.Bind(wx.EVT_BUTTON,self.clear,id=202)
self.Bind(wx.EVT_BUTTON,self.save,id=201)
self.filename="AddressBookDataBase"
if not os.path.exists(self.filename):
os.makedirs('AddressBookDataBase')
frame=AddressBook()
app.SetTopWindow(frame)
frame.Centre()
frame.Show()
app.MainLoop()
错误截图
解决方案
我只能假设,该错误与您在其下运行的某些 IDE 有关。
如果您从命令行运行它,我猜它会起作用。
传统上,创建 的wx.App()
放置在您将开始引用它的位置,并包装到直接调用此代码的测试中。
IE
if __name__ == "__main__":
app=wx.App()
frame=AddressBook()
app.SetTopWindow(frame)
frame.Centre()
frame.Show()
app.MainLoop()
psretrieve
不是retrive
推荐阅读
- ios - AVAssetWriter 元数据日期问题
- java - 如何从服务器获得响应,例如“上传成功”
- mybatis - 为什么mybatis insert 不返回最后一个insert id?
- r - 基于 dplyr 函数从现有数据框创建列表
- .net - 部署到服务器时出现 CORS 问题
- node.js - 将 express-sslify 安装到 MERN 项目后出现 net::ERR_SSL_PROTOCOL_ERROR 错误
- c - 即使我有 clobbers,GCC 也不会在我的内联 asm 函数调用周围推送寄存器
- node.js - 从 bacnet 模拟器读取数据时出错:错误:ERR_TIMEOUT 使用 bacstack lib(nodejs)
- phpstorm - 如何在使用 DDEV 处理本地项目时忽略 Xdebug + PhpStorm 中的 phpstatus.php 连接?
- javascript - JavaScript Blob 返回损坏的 PDF