En fait, il serait préférable de formuler la question comme une demande de meilleure pratique pour y parvenir. C'est frustrant car cela devrait être facile.
Je suis un tutoriel dans le livre Flask by Example. J'utilise la dernière version de python 3. L'urllib2 utilisé dans le texte ne peut être trouvé pour python 3. D'après le texte, nous avons besoin d'urllib2 pour télécharger les données, et d'urllib pour encoder correctement les paramètres. Juste une fonction, get_weather car je ne trouve pas d'approche actualisée qui fonctionne.
Je vais énumérer les lignes de code pertinentes pour montrer ce que j'essaie d'accomplir. J'utilise la dernière version de flask avec python 3. Je ne vais pas énumérer le fichier modèle, car le problème n'est apparu que lorsque j'ai essayé de télécharger une api json.
Donc, les premières modifications du fichier, incluent les importations pour urllib et json. Le livre date de 2015, lorsque urllib2 était disponible. Nous essayons d'obtenir la météo à partir de openwheathermap.org. Comme je n'ai pas pu trouver urllib2, j'ai modifié légèrement le code du livre.
J'ai
WEATHER_URL = "http://api.openweathermap.org/data/2.5/weather?q={}&APPID=myappid"
def get_weather(query):
query = urllib.parse.quote(query)
url = WEATHER_URL.format(query)
data = urllib.request.urlopen(url).read()
parsed = json.loads(str(data))
weather = None
if parsed.get('weather'):
weather = {'description': parsed['weather'][0]['description'],
'temperature': parsed['main']['temp'],
'city': parsed['name'],
'country': parsed['sys']['country']
}
return weather
Tout conseil serait apprécié.
Merci, Bruce