嗨,我正在用Flask编写评论页面,但正在努力创建删除按钮。根据我的代码,当单击delete按钮时,会出现KeyError。审阅表中只有两行是Writer和Content。我粘贴了显示和删除ReviewAPI代码,还带有服务器端删除功能。
我的方法可以通过从客户端发送标题和评论到服务器来删除代码,然后删除数据库中与客户端发送的标题和评论相匹配的对象吗?我想知道为什么出现键盘错误。我乞求你的帮助!感谢阅读。
File "/Users/min05099/sparta/projects/detailPage/venv/lib/python3.8/site-packages/flask/app.py", line 2088, in __call__
return self.wsgi_app(environ, start_response)
File "/Users/min05099/sparta/projects/detailPage/venv/lib/python3.8/site-packages/flask/app.py", line 2073, in wsgi_app
response = self.handle_exception(e)
File "/Users/min05099/sparta/projects/detailPage/venv/lib/python3.8/site-packages/flask/app.py", line 2070, in wsgi_app
response = self.full_dispatch_request()
File "/Users/min05099/sparta/projects/detailPage/venv/lib/python3.8/site-packages/flask/app.py", line 1515, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/min05099/sparta/projects/detailPage/venv/lib/python3.8/site-packages/flask/app.py", line 1513, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/min05099/sparta/projects/detailPage/venv/lib/python3.8/site-packages/flask/app.py", line 1499, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/Users/min05099/sparta/projects/detailPage/app.py", line 19, in write_review
review_receive = request.form['review_give']
File "/Users/min05099/sparta/projects/detailPage/venv/lib/python3.8/site-packages/werkzeug/datastructures.py", line 377, in __getitem__
raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'review_give' ```
```function showReview() {
$.ajax({
type: "GET",
url: "/review",
data: {},
success: function (response) {
let reviews = response['all_reviews']
for (let i = 0; i < reviews.length; i++) {
let title = reviews[i]['title']
let review = reviews[i]['review']
let temp_html = `<tr>
<td>${title}</td>
<td>${review}</td>
<td><button onclick="deleteReview('${title, review}')">delete</button></td>
</tr>`
$('#reviews-box').append(temp_html)
}
}
}
)
}
function deleteReview(title, review) {
$.ajax({
type: 'POST',
url: '/review',
data: {title_give:title, review_give:review},
success: function (response) {
alert(response['msg']);
window.location.reload()
}
});
} ```
```@app.route('/review', methods=['POST'])
def delete_review():
title_receive = request.form['title_give']
review_receive = request.form['review_give']
db.miniProject.delete_one({'title': title_receive, 'review': review_receive})
return jsonify({'msg': 'Successfully Delete!'})```
问题源于生成按钮时的字符串插值。
${title,review}
仅注入review
的值。由于您的deleteReview
只接收一个参数,因此ajax调用数据中的review\u give
字段留空,导致flask应用程序中相应的键丢失。
这是如何正确地进行字符串插值:
let temp_html = `<tr>
<td>${title}</td>
<td>${review}</td>
<td><button onclick="deleteReview('${title}, ${review}')">delete</button></td>
</tr>`
此外,与其按标题和评论正文删除评论,不如在服务器端为每个评论分配一个ID。然后,您可以基于此ID删除评论。
我需要删除每天滚动的旧日志文件。要限制我尝试的文件数,请执行以下操作: 但是日志没有被删除。 现在我在尝试 但我得到了一个错误: 错误DefaultRolloverStrategy包含无效元素或属性“Delete” 我的log4j2有点问题。xml文件? 我将maven与以下内容一起使用:
我有一个目录,它是在执行应用程序后创建的。在使用应用程序的过程中,它充满了一些图片,这些图片是ComboBox的ItemsSource。在关闭应用程序之前,我试图通过设置new()或NULL来清除ItemsSource并删除该目录。如果目录为空,则会正常删除。但除此之外——什么都没有发生,也没有例外。我做错了什么? 创建目录并将路径值分配给“FeedBackScreenshotsPath” 删除
我用了docker,想删除所有东西 所以我试着移除它,但它并没有消失
我在ReactJS中编程时使用Axios,我假装向服务器发送DELETE请求。 为此,我需要标题: 而身体是由 我一直在互联网上搜索,只发现DELETE方法需要一个“参数”,不接受“数据”。 我一直试图这样发送: 或者甚至 但似乎没有什么工作... 有人能告诉我是否有可能(我想是这样)发送一个包含标题和正文的删除请求,以及如何做到这一点吗? 提前谢谢你!
问题内容: 我正在尝试使用JSON从服务器获取对象数组。 服务器向我发送以下字符串。 现在,如果您仔细查看字符串,您会发现它包含一个 而不是every 。该字符串目前无法格式化为JSONArray。所以,我需要更换的每个实例 有 ,这将有一个非常简单的任务,也 没有一个 转义序列 。 我尝试使用以下代码。 但这给了我以下例外。 我的整个代码,以防万一: 问题答案: 试试这个: 因为反斜杠是正则表达
问题内容: 我正在使用,我想删除所有出现的特定元素。 它仅删除第一次出现的事件。但是我希望所有列表都被删除,因为我希望列表仅保留值“ second”。通过谷歌搜索发现,可以通过创建新列表并调用来实现。但是是否可以在不创建新列表的情况下删除所有出现的内容,或者是否有可用的API来实现它? 问题答案:
我在路径中编辑pic文件并为其创建新的图像文件。我的代码是: 怎么修?