溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Python編寫個(gè)有趣的記仇本

發(fā)布時(shí)間:2023-04-17 11:34:21 來源:億速云 閱讀:108 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“怎么用Python編寫個(gè)有趣的記仇本”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么用Python編寫個(gè)有趣的記仇本”吧!

記仇本展示

如題所述,項(xiàng)目已經(jīng)寫好了,是基于local_storage存儲(chǔ)在本地的項(xiàng)目

該項(xiàng)目運(yùn)行時(shí)是基于brython, 你可能想問,為什么不使用原生python來編寫網(wǎng)頁呢,這個(gè)有個(gè)誤區(qū)是,網(wǎng)頁是由html代碼編寫的,而原生python想要操作DOM非常難,所以brython正是為這個(gè)來操作的。

初始打開頁面,因?yàn)闆]有數(shù)據(jù)展示,所以只有一個(gè)增加按鈕。

怎么用Python編寫個(gè)有趣的記仇本

當(dāng)我們點(diǎn)擊【畫個(gè)圈圈記下來】按鈕后,會(huì)刷新為新增頁面,例如:

怎么用Python編寫個(gè)有趣的記仇本

此時(shí),我們只需要輸入信息,比如 記老婆的仇,緣由為 買switch游戲透露給丈母娘,還得被罵。

怎么用Python編寫個(gè)有趣的記仇本

此時(shí)點(diǎn)擊記仇,就可以存儲(chǔ)到頁面上了。

怎么用Python編寫個(gè)有趣的記仇本

此時(shí)若點(diǎn)擊已原諒,則可以刪除該記錄。

brython 之 local_storage

你可能細(xì)心發(fā)現(xiàn)了,哎,關(guān)掉了瀏覽器,下次打開,怎么還會(huì)有記錄在上面呢,這是因?yàn)橛昧?code>local_storage,那么,什么是local_storage呢?

哎,我們使用的是brython中的local_storage但是,它可不是python定義的哦,而是HTML 5提供的存儲(chǔ)數(shù)據(jù)的API之一,可以在瀏覽器中保持鍵值對(duì)數(shù)據(jù)塊。

現(xiàn)在來展示使用一下brython存儲(chǔ)和刪除的操作。

導(dǎo)入庫:

from browser.local_storage import storage

存儲(chǔ)數(shù)據(jù),例如鍵值信息juejinName存儲(chǔ)為pdudo

storage[juejinName] = "pdudo"

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

v = storage[juejinName]

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

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

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

而刪除數(shù)據(jù)呢?只需要像刪除字典一下

del storage[juejinName]

storage是不是操作起來和字典非常類似呢?減少了開發(fā)者的學(xué)習(xí)成本。

制作項(xiàng)目

有了上述前置條件后,我們?cè)倏丛擁?xiàng)目,便可以總結(jié)為 針對(duì)localStorage的增刪查,首先當(dāng)頁面加載出來的時(shí)候,我們需要先遍歷一下localstorage數(shù)據(jù),從而映射為一個(gè)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,而后在定義刪除按鈕,等將其他值組合完畢后,全部加載進(jìn)table中,而后再頁面上顯示。

而添加數(shù)據(jù)呢?

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框中的值,再判斷是否用戶沒有輸入,我們將數(shù)據(jù)組裝為一個(gè)字典,而后轉(zhuǎn)換為字符串,再存入localstage中。

還有其他操作,這個(gè)可以直接看代碼說明,brython很簡(jiǎn)單的。

到此,相信大家對(duì)“怎么用Python編寫個(gè)有趣的記仇本”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI