def doUpdate(self, id=None, stud_number=None, stud_name=None, \ school_dept=None, major=None, expt_salary=None, itemperpage=9, page=1): 個人資料 = [] 資料計數 = 0 # 以下改為以 pybean 儲存資料 library = Store(SQLiteWriter(SQLite_data_dir+"/database.sqlite", frozen=False)) # 動態建立 student 資料表 student = library.new("student") # 以 find_one 找出所要更新的一筆資料 # 配合 pybean 0.2.1 將 uuid 改為 id, 且將 UUID(uuid).bytes 改為 id 更新資料 = library.find_one("student","id=?",[id]) # 是否會發生更新資料為空的情況? if 更新資料 == None: outString = "沒有資料" return outString # 將更新資料存入 pybean 更新資料.stud_number = stud_number 更新資料.stud_name = stud_name 更新資料.school_dept = school_dept 更新資料.major = major 更新資料.expt_salary = expt_salary # 儲存資料表內容 library.save(更新資料) # 配合 pybean 0.2.1 將 commit 移出, save 與 delete 必須要配合 commit 才能更新資料庫 library.commit() # 設法從資料庫中擷取所有資料, 以得到個人資料數列 for 資料 in library.find("student","1"): 學號 = 資料.stud_number 姓名 = 資料.stud_name 科系 = 資料.school_dept 專長 = 資料.major 薪水 = 資料.expt_salary # 配合 pybean 0.2.1 將 uuid 改為 id, 且將 UUID(uuid).bytes 改為 id 更新連結 = "<a href=\"updateForm?id="+str(資料.id)+"\">"+學號+"</a>" # 增加更新與刪除連結 #個人資料.append([更新連結,姓名,科系,專長,薪水]) 更新 = "<a href=\"updateForm?id="+str(資料.id)+"\">更新</a>" 刪除 = "<a href=\"deleteForm?id="+str(資料.id)+"\">刪除</a>" 個人資料.append([更新連結,姓名,科系,專長,薪水,更新,刪除]) # # 根據數列中各 tuple 中的學號(亦即 key data[0])進行排序 # 個人資料排列後, 必須加以指定成變數, 否則個人資料的內容排序後並未改變 個人資料 = sorted(個人資料, key=lambda data: data[0], reverse=True) #print(個人資料) # 改用 HTML 進行資料列印 #outString = self.htmlList(個人資料) totalitem = library.count("student") outString = self.pageList(個人資料,totalitem,itemperpage,page) return outString
def updateForm(self,id=None): # 必須加入 id 無值時的處理 # 設法根據 stud_number 查出對應的欄位資料 # 改為利用 uuid 查出對應的欄位資料, uuid 為各筆資料的唯一代號 個人資料 = [] 資料計數 = 0 # 以下改為以 pybean 儲存資料 library = Store(SQLiteWriter(SQLite_data_dir+"/database.sqlite", frozen=False)) # 動態建立 student 資料表 student = library.new("student") # 以 find_one 找出所要的一筆資料 #一筆資料 = library.find_one("student","stud_number=?",[stud_number]) #UUID(uuid).bytes 為正確的 uuid 欄位資料 # 配合 pybean 0.2.1 將 UUID(uuid).bytes 改為 id 一筆資料 = library.find_one("student","id=?",[id]) # 若查詢後為空資料, 則回覆沒有資料或回傳發生錯誤. if 一筆資料 == None: outString = "沒有資料" return outString stud_number = 一筆資料.stud_number stud_name = 一筆資料.stud_name school_dept = 一筆資料.school_dept major = 一筆資料.major expt_salary = 一筆資料.expt_salary outString = ''' 資料更新表單 <br /><br /> <form method=\"post\" action=\"doUpdate\"> ''' outString += "學號:<input type=\"text\" name=\"stud_number\" value=\""+str(stud_number)+"\"><br />" outString += "姓名:<input type=\"text\" name=\"stud_name\" value=\""+str(stud_name)+"\"><br />" outString += "高中科系:<input type=\"text\" name=\"school_dept\" value=\""+str(school_dept)+"\"><br />" outString += "專長:<input type=\"text\" name=\"major\" value=\""+str(major)+"\"><br />" outString += "預計薪資:<input type=\"text\" name=\"expt_salary\" value=\""+str(expt_salary)+"\"><br />" # 將資料對應的 uuid 以隱藏資料送回, 這裡或許會有資料安全疑慮? outString += "<input type=\"hidden\" name=\"id\" value=\""+str(id)+"\"><br />" outString += ''' <input type=\"submit\" value=\"更新\"> <input type=\"reset\" value=\"重填\"> </form> '''+self.menuLink() return outString
def deleteForm(self,id=None): # 設法根據 stud_number 查出對應的欄位資料 # 改為利用 uuid 查出對應的欄位資料, uuid 為各筆資料的唯一代號 個人資料 = [] 資料計數 = 0 # 以下改為以 pybean 儲存資料 library = Store(SQLiteWriter(SQLite_data_dir+"/database.sqlite", frozen=False)) # 動態建立 student 資料表 student = library.new("student") # 以 find_one 找出所要的一筆資料 #一筆資料 = library.find_one("student","stud_number=?",[stud_number]) #UUID(uuid).bytes 為正確的 uuid 欄位資料 # 配合 pybean 0.2.1 將 UUID(uuid).bytes 改為 id 一筆資料 = library.find_one("student","id=?",[id]) # 考量當一筆資料為空時 if 一筆資料 == None: outString = "沒有資料" return outString stud_number = 一筆資料.stud_number stud_name = 一筆資料.stud_name school_dept = 一筆資料.school_dept major = 一筆資料.major expt_salary = 一筆資料.expt_salary outString = ''' 資料刪除表單 <br /><br /> 按下刪除後, 下列資料將會刪除 <br /><br /> <form method=\"post\" action=\"doDelete\"> ''' outString += "學號:"+str(stud_number)+"<br />" outString += "姓名:"+str(stud_name)+"<br />" outString += "高中科系:"+str(school_dept)+"<br />" outString += "專長:"+str(major)+"<br />" outString += "預計薪資:"+str(expt_salary)+"<br />" # 將資料對應的 uuid 以隱藏資料送回, 這裡或許會有資料安全疑慮? outString += "<input type=\"hidden\" name=\"id\" value=\""+str(id)+"\"><br />" outString += ''' <input type=\"submit\" value=\"刪除\"> </form> '''+self.menuLink() return outString