【发布时间】:2012-12-27 20:01:07
【问题描述】:
完整代码是HERE
HTML 代码
<input type="hidden" id="Latitude" name="Latitude" value={{Longitude}} />
<input type="hidden" id="Longitude" name="Longitude" value={{Longitude}} />
document.getElementById("Latitude").value = position.coords.latitude;
document.getElementById("Longitude").value = position.coords.longitude;
app.py
Latitude = request.form['Latitude']
Longitude = request.form['Longitude']
messages = database.returnMessagesinRange(float(Latitude),float(Longitude))
数据库.py
def returnMessagesinRange(longitude,latitude):
allMessages = Messages.find()
messagesinRange = []
for current in allMessages:
if ((current['longitude']-longitude) * (current['longitude']-longitude) + (current['latitude']-latitude)*(current['latitude']-latitude)) <= 1:
if messagesinRange == None:
messagesinRange = [current['text']]
else:
messagesinRange.append(current['text'])
return messagesinRange
当它运行时,我得到
if ((current['longitude']-longitude) * (current['longitude']-longitude) + (current['latitude']-latitude)*(current['latitude']-latitude)) <= 1:
TypeError: unsupported operand type(s) for -: 'unicode' and 'unicode'
有人知道为什么会这样吗?谢谢。
【问题讨论】:
-
您的错误与您的代码不匹配:唯一的减法是
current['longitude']-longitude和(current['latitude']-latitude)。除非你在别处调用你的函数,否则longitude和latitude是浮点数,但current['latitude']和current['longitude']可能是unicodes。这将给出错误TypeError: unsupported operand type(s) for -: 'unicode' and 'float' -
是的,你的问题之一是here
标签: python html database unicode