[新手] 为什么我 Tornado 利用 html 表单的 name 值可以添加数据,但是无法删除 MongoDB 某条数据??

2014-05-22 10:39:46 +08:00
 dddd
class DelLiveHandler(tornado.web.RequestHandler):
def get(self):
self.render("del_live.html")
def post(self):
temp = dict()
coll = self.application.db.lives
date = self.get_argument("date", "")
city = self.get_argument("city", "")
venue = self.get_argument("venue", "")
if date != "":
temp["date"] = date
elif city != "":
temp["city"] = city
elif venue != "":
temp["venue"] = venue
coll.remove(temp)
self.redirect("/live")
上述代码操作这个表单:
{% extends "base.html" %}

{% block content %}
<fieldset>
<h3>Delete Tour Dates</h3>
<form method="post">
<p><label for="date">Date:</label>
<input type="text" id="date" name="date" value="Tour date"/></p>
<p><label for="city">City:</label>
<input type="text" id="city" name="city" value="Tour city"/></p>
<p><label for="venue">Venue:</label>
<input type="text" id="venue" name="venue" value="Tour Venue"/></p>
<input type="submit" value="Delete" id="delete">
</form>
</fieldset>
{% end %}
{% block import_js %}
<script type="text/javascript" src="{{ static_url("js/global.js") }}"></script>
<script type="text/javascript" src="{{ static_url("js/contact.js") }}"></script>
{% end %}
2640 次点击
所在节点    Python
5 条回复
MasterYoda
2014-05-22 11:03:33 +08:00
不清楚逻辑阿,感觉你的逻辑可能不该用elif。
print temp 看看和你想象的一样吗
dddd
2014-05-22 11:48:33 +08:00
@MasterYoda
就是我随便输入['date','city','venue']中的一个都可以找到并删除包含这个值的那条数据

如果我输入的是city,第一个留空print 这个{'date': 'Tour date'}
dddd
2014-05-22 11:51:57 +08:00
@MasterYoda
我用了个笨方法: [泪]
if date != "Tour date":
  temp["date"] = str(date)
elif city != "Tour city":
  temp["city"] = str(city)
elif venue != "Tour venue":
  temp["venue"] = str(venue)
dddd
2014-05-22 11:54:36 +08:00
@MasterYoda 不该用elif,如果我三个都填了,就智能得到第一个,不科学,O(∩_∩)O谢谢!
但是我觉得我这办法看起来太笨,应该有更好的,
MasterYoda
2014-05-22 13:17:00 +08:00
@dddd
我前端完全不会啊,但是好奇为什么<input type="text" id="date" name="date" value="Tour date"/>
默认是有value的,如果不填 , date直接是None不好嘛?
然后就是 你把elif都改成if就行了。就会得到3个的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/113711

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX