در کد پایین 3 تا پارامتر یه دیتا باس فرستاده می شه
1-text2 که بیرون از کلاس فرام هست
2-self.text1 که داخل کلاس هست
ودر نهایت فیلدی از textctr
#-*-coding:utf8-*-
import wx
import MySQLdb
conn = MySQLdb.connect (host = "localhost",
user = "tony",
passwd = "ppp",
db = "store")
cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
text2='پايتون'
def create(parent):
return Frame3(parent)
[wxID_FRAME3, wxID_FRAME3BUTTON1, wxID_FRAME3PANEL1, wxID_FRAME3TEXTCTRL1,
] = [wx.NewId() for _init_ctrls in range(4)]
class Frame3(wx.Frame):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME3, name='', parent=prnt,
pos=wx.Point(71, 279), size=wx.Size(400, 132),
style=wx.DEFAULT_FRAME_STYLE, title='Frame3')
self.SetClientSize(wx.Size(392, 98))
self.panel1 = wx.Panel(id=wxID_FRAME3PANEL1, name='panel1', parent=self,
pos=wx.Point(0, 0), size=wx.Size(392, 98),
style=wx.TAB_TRAVERSAL)
self.textCtrl1 = wx.TextCtrl(id=wxID_FRAME3TEXTCTRL1, name='textCtrl1',
parent=self.panel1, pos=wx.Point(16, 16), size=wx.Size(100, 21),
style=0, value='textCtrl1')
self.textCtrl2 = wx.TextCtrl(id=wxID_FRAME3TEXTCTRL1, name='textCtrl2',
parent=self.panel1, pos=wx.Point(140, 16), size=wx.Size(100, 21),
style=0, value='textCtrl2')
self.textCtrl3 = wx.TextCtrl(id=wxID_FRAME3TEXTCTRL1, name='textCtrl3',
parent=self.panel1, pos=wx.Point(260, 16), size=wx.Size(100, 21),
style=0, value='textCtrl3')
self.button1 = wx.Button(id=wxID_FRAME3BUTTON1, label='button1',
name='button1', parent=self.panel1, pos=wx.Point(16, 48),
size=wx.Size(75, 23), style=0)
self.Bind(wx.EVT_BUTTON,self.onCloseMe,self.button1)
def __init__(self, parent):
self._init_ctrls(parent)
def onCloseMe(self,event):
self.text1=self.textCtrl1.GetValue()
self.text2=self.textCtrl2.GetValue()
self.text3=self.textCtrl3.GetValue()
self.text1='پايتون'
print self.text1
## cursor.execute ("""
## CREATE TABLE gridt2
## (
## label CHAR(40),
## first CHAR(40),
## last CHAR(40)
## )
## """)
cursor.execute ("""
INSERT INTO gridt2 (label,first,last)
VALUES("%s","%s","%s")"""%((self.text1),(text2),(self.text3)))
## cursor.execute ("""
## INSERT INTO gridt2 (first)
## VALUES("%s")"""%(self.text2))
## cursor.execute ("""
## INSERT INTO gridt2 (last)
## VALUES("%s")"""%(self.text3))
cursor.execute ("SELECT * FROM gridt2")
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = create(None)
frame.Show()
app.MainLoop()
خروجی به صورت زیر است
server version: 5.0.41-community-nt
ظ¾ط§ظٹطھظˆظ
Traceback (most recent call last):
File "C:\Documents and Settings\appie\Desktop\frame.pyw", line 65, in onCloseMe
cursor.execute ("""
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd9 in position 67: ordinal not in range(128)
کهtext2 به دیتا باس فرستاده میشه
self.text1 و هم چون در کلاس هست ارور میده
واین هم کد grid
# -*- coding: utf8 -*-
import wx
import wx.grid
import MySQLdb
conn = MySQLdb.connect(host='localhost', user='tony', passwd='ppp',db='store')
curs = conn.cursor( )
##curs.execute("""
## CREATE TABLE gridt1 (
## label CHAR(100),
## first CHAR(200),
## last CHAR(200)
## )
##""")
ted='TED'
ted=eval(u'ted')
##curs.execute ("""
## INSERT INTO gridt(label)
## VALUES("%s")"""%(ted))
##curs.execute("""
## INSERT INTO gridt1 VALUES('L1','FirstGrid','LastGrid')
##""")
curs.execute('select * from gridt2')
dlabel=[rec[0] for rec in curs.fetchall( )]
dfirst=[rec[1] for rec in curs.fetchall( )]
dlast=[rec[2] for rec in curs.fetchall( )]
#curs.execute('select first from gridt')
#dfirst=curs.fetchall( )
#curs.execute('select last from gridt')
#dlast=curs.fetchall( )
##print dfirst
print dlabel
class LineupTable(wx.grid.PyGridTableBase):
data={}
r=len(dlabel)
print '<<<<<<<'
print r
d=0
while d!=r:
strlb=str(dlabel[d])
strfr=str(dfirst[d])
strls=str(dlast[d])
strlb=unicode(strlb,'utf8')
strfr=unicode(strfr,'utf8')
strls=unicode(strls,'utf8')
data[d]=(strlb,strfr,strls)
d+=1
## data[d]=(dlabel[d],dfirst[d],dlast[d])
## h=len(dlabel)
##
## f=str(data[h-1])
## l=unicode(f,'utf8')
## ll=str(dlabel[58])
## ll=unicode(ll,'utf8')
## data[58]=(ll,'test','test')
## print data[57]
##
## print data
## print len(data)
colLabels = ("Last", "First")
def __init__(self):
wx.grid.PyGridTableBase.__init__(self)
def GetNumberRows(self):
return len(self.data)
def GetNumberCols(self):
return len(self.data[0]) - 1
def GetColLabelValue(self, col):
return self.colLabels[col]
def GetRowLabelValue(self, row):
return self.data[row][0]
def IsEmptyCell(self, row, col):
return False
def GetValue(self, row, col):
return self.data[row][col + 1]
def SetValue(self, row, col, value):
pass
class SimpleGrid(wx.grid.Grid):
def __init__(self, parent):
wx.grid.Grid.__init__(self, parent, -1)
self.SetTable(LineupTable())
class TestFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, "A Grid",
size=(275, 275))
grid = SimpleGrid(self)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = TestFrame(None)
frame.Show(True)
app.MainLoop()
البته اینا مربوط به ویندوزه چکار کنم تا
1-اطلاعات را از فرم فارسی یا انگلیسی بخونم و در mysql ذخیره کنم
2-در mysql اطلاعات را به صورت درست مشاهده کنم
3-از اون با wx یا مثل اون لیستگیری کنم
فکر کنم coding ویندوز و لینوکس فرق داشته باشه برای هر دو این کارو می خوام بکنم راهنمایی کنید
