Wieder zurück hier mit einer Flaschenfrage. Ich bin ein Anfänger und lerne einige tolle Dinge von reddit (wie legit code). Hier ist mein Code, dass ich bestimmte Informationen von einer API erfasst habe, die ich nun lokal über Flask hosten möchte.Interner Serverfehler von Flask
from flask import Flask, render_template
import httplib
import json
app = Flask(__name__)
@app.route('/')
def index():
connection = httplib.HTTPConnection('api.football-data.org')
headers = {'X-Auth-Token': 'this is my api token here', 'X-Response-Control': 'minified'}
connection.request('GET', '/v1/competitions/426/leagueTable', None, headers)
response = json.loads(connection.getresponse().read().decode())
return response
if __name__ == '__main__':
app.run()
Als ich 127.0.0.1:5000 laufen erhalte ich:
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
Hier ist, was mein Server sagt mir!
MacBooks-MBP:Football macbookpro13$ python Footy_Web.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
[2016-12-20 13:58:17,493] ERROR in app: Exception on/[GET]
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/flask/app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Python/2.7/site-packages/flask/app.py", line 1642, in full_dispatch_request
response = self.make_response(rv)
File "/Library/Python/2.7/site-packages/flask/app.py", line 1746, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "/Library/Python/2.7/site-packages/werkzeug/wrappers.py", line 847, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "/Library/Python/2.7/site-packages/werkzeug/wrappers.py", line 57, in _run_wsgi_app
return _run_wsgi_app(*args)
File "/Library/Python/2.7/site-packages/werkzeug/test.py", line 871, in run_wsgi_app
app_rv = app(environ, start_response)
TypeError: 'dict' object is not callable
127.0.0.1 - - [20/Dec/2016 13:58:17] "GET/HTTP/1.1" 500 -
Ich sollte erwähnen, dass dieser Code außerhalb des Flaschenrahmens funktioniert!
ich mit Kolben nicht vertraut bin (aber Django statt) . Meine Vermutung ist, Sie versuchen, dict Typ Objekt 'Antwort' zurück zu senden. Aber Sie müssen HTTP Response senden. Sie können googeln auf * how to send dict als Antwort auf Flask API *, die mir das Ergebnis gab: [Wie man Json mit Flask Web-Framework zurückgeben] (http://stackoverflow.com/a/13089975/2063361) –