Пример #1
0
    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
Пример #2
0
 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
Пример #3
0
 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