我正在使用瓶子框架在 Python 中執行 crud rest API,并且無法通過字典中的 id 更新專案。到目前為止,我已經完成了創建、讀取和洗掉。
這是我的字典:
items = [
{"id": "1", "name": "a", "lastname": "a"},
{"id": "2", "name": "b", "lastname": "b"},
{"id": "3", "name": "c", "lastname": "c"},
]
這是我的路線:
from bottle import get, post, run, redirect, request, response, view, put
@put("/items/<item_id>")
def updated_item(item_id):
for item in items:
if item["id"] == item_id:
new_name = request.forms.get("name")
new_lastname = request.forms.get("lastname")
#(I need some help here)
return redirect("/items")
uj5u.com熱心網友回復:
items如果index 是常量,則不需要迭代專案。這意味著在list和 中的索引之間存在映射item["id"]:
@put("/items/<item_id>")
def updated_item(item_id):
new_name = request.forms.get("name")
new_lastname = request.forms.get("lastname")
items[int(item_id) - 1] = {"id": item_id, "name": new_name, "lastname": "new_lastname"}
return redirect("/items")
如果您洗掉專案,只需保留一個空元素以保持順序:
@delete("/items/<item_id>"):
def delete_item(item_id):
items[int(item_id)] = {}
當然,如果id是任意的,這將不起作用,例如:
items = [
{"id": "12", "name": "a", "lastname": "a"},
{"id": "21", "name": "b", "lastname": "b"},
{"id": "53", "name": "c", "lastname": "c"},
]
如果是這種情況,您應該考慮使用記憶體資料庫(例如 SQLite),它非常適合您剛才展示的記錄的內部管理。然后資料庫將替換items(嗯,它將是一個表)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/426455.html
