Python'da yeniyim ve bu projede çalışırken öğreniyorum ve bu konu beni gerçekten karıştırıyor. Ben /set/phone/40
diyoruzFlask: TypeError: 'int' nesnesi callable değil
from flask import Flask
from datetime import datetime
# Setup app
app = Flask(__name__)
# Initialize data dict
data = {}
# Pretty-formats a time difference
def formatdifference(delta):
seconds = delta.total_seconds()
if (seconds < 60):
return "{seconds} seconds ago" % {"seconds": seconds}
return "{minutes} minutes ago" % {"minutes": seconds/60}
# Sets a device battery level
@app.route("/set/<device>/<int:battery>")
def set(device, battery):
data[device] = (battery, datetime.now())
return "done"
# Get's a device battery level
@app.route("/get/<device>")
def get(device):
if not device in data:
return "No heartbeats"
devicedata = data[device]
delta = datetime.now() - devicedata[1]
if (delta.total_seconds() > 10):
return "Last heartbeat {diff}" % {"diff": formatdifference(delta)}
return devicedata[0]
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
: İşte benim kod. Şimdiye kadar iyi. Sonra /get/phone
'u arıyorum. Çok iyi değil. İşte traceback var: balona en ayıklayıcısını kullanma
TypeError: 'int' object is not callable
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1478, in full_dispatch_request
response = self.make_response(rv)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1577, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 825, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "/usr/local/lib/python2.7/dist-packages/werkzeug/test.py", line 855, in run_wsgi_app
app_iter = app(environ, start_response)
TypeError: 'int' object is not callable
, bu son karede, uygulama 40 gibi görünen görebilirsiniz!
yeryüzünde Bu nasıl oldu, ve bunu nasıl çözebilir? Değiştir
aşağıdaki satırı:
return devicedata[0]
ile:
Eğer 'dönüş str ifade ediyor (devicedata [0])'? – falsetru
@falsetru Yaptığım gibi görünüyor! Bu çözüldü, teşekkürler! – JJJollyjim