首頁  >  文章  >  後端開發  >  怎麼用Python寫個有趣的記仇本

怎麼用Python寫個有趣的記仇本

王林
王林轉載
2023-04-30 23:40:201568瀏覽

記仇本展示

如題所述,項目已經寫好了,是基於local_storage存儲在本地的項目

該項目運行時是基於brython, 你可能想問,為什麼不用原生python來寫網頁呢,這個有個誤解是,網頁是由html程式碼寫的,而原生python想要操作DOM非常難,所以brython正是為這個來操作的。

初始開啟頁面,因為沒有資料展示,所以只有一個增加按鈕。

怎麼用Python寫個有趣的記仇本

當我們點選【畫個圈圈記下來】按鈕後,會重新整理為新增頁面,例如:

怎麼用Python寫個有趣的記仇本

此時,我們只需要輸入訊息,例如記老婆的仇,緣由為買switch遊戲透露給丈母娘,還得被罵。

怎麼用Python寫個有趣的記仇本

此時點選記仇,就可以儲存到頁面上了。

怎麼用Python寫個有趣的記仇本

此時若點選已原諒,則可以刪除該記錄。

brython 之local_storage

你可能細心發現了,哎,關掉了瀏覽器,下次打開,怎麼還會有記錄在上面呢,這是因為用了 local_storage,那麼,什麼是local_storage呢?

哎,我們使用的是brython中的local_storage但是,它可不是python定義的哦,而是HTML 5提供的儲存資料的API之一,可以在瀏覽器中保持鍵值對資料塊。

現在來展示使用一下brython儲存和刪除的操作。

導入庫:

from browser.local_storage import storage

儲存數據,例如鍵值資訊juejinName儲存為pdudo

storage[juejinName] = "pdudo"

查詢的話,直接使用storage[變數]就好,若為空,則回傳None

v = storage[juejinName]

循環所有的key,需要引入 window庫,再使用for...in來完成

from browser import window
for key in window.localStorage:
    print(key)

也可以直接使用for...in來遍歷storage

而刪除資料呢?只需要像刪除字典一下

del storage[juejinName]

storage是不是操作起來跟字典很相似呢?減少了開發者的學習成本。

製作項目

有了上述前置條件後,我們再看該項目,便可以總結為針對localStorage的增刪查,首先當頁面加載出來的時候,我們需要先遍歷一下localstorage數據,從而映射為一個table#,例如:

  for key in window.localStorage:
    tr = html.TR()
    datas = json.loads(storage[key])

    delBtn = html.BUTTON("已原谅")
    delBtn.dataset["id"] = datas["id"]
    delBtn.className = "confirm-btn"
    delBtn.bind("click",delGrudges)

    td = html.TD(delBtn+" "+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(datas["id"]))))
    tr <= td

    for tdVal in datas["whos"],datas["Text"]:
      td = html.TD(tdVal)
      tr <= td
        
    tb <= tr 

    userWindows <= tb

上述程式碼是遍歷localStorage,而後在定義刪除按鈕,等將其他值組合完畢後,全部載入進table#中,而後再頁面上顯示。

而加入資料呢?

def saveGrudges(ev):
  getWhoVal = document["whos"].value
  getTextVal = document["textArea"].value

  if getWhoVal == "" or getTextVal == "":
    return
  
  document["saveBtn"].unbind("click")


  ids = int(time.time())
  datas = {
    "id": ids,
    "whos": getWhoVal,
    "Text": getTextVal
  }

  storage[str(ids)] = json.dumps(datas)

上述程式碼,顯示取得inputtextarea方塊中的值,再判斷是否使用者沒有輸入,我們將資料組裝為字典,而後轉換為字串,再存入localstage中。

還有其他操作,這個可以直接看程式碼說明,brython很簡單的。

以上是怎麼用Python寫個有趣的記仇本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除