Commit 1f92d7d4 authored by fangzhipeng's avatar fangzhipeng

Initial commit

parents
from flask import Flask
from weather.service import weather
app = Flask(__name__)
class PrefixMiddleware(object):
def __init__(self, app, prefix=''):
self.app = app
self.prefix = prefix
def __call__(self, environ, start_response):
print(environ['PATH_INFO'])
if environ['PATH_INFO'].startswith(self.prefix):
environ['PATH_INFO'] = environ['PATH_INFO'][len(self.prefix):]
environ['SCRIPT_NAME'] = self.prefix
return self.app(environ, start_response)
else:
start_response('404', [('Content-Type', 'text/plain')])
return ["This url does not belong to the app.".encode()]
app.wsgi_app = PrefixMiddleware(app.wsgi_app, prefix='/api')
app.register_blueprint(weather)
if __name__ == '__main__':
app.run(debug=True)
\ No newline at end of file
class BaseRes:
def __init__(self, data=None, status=200, message='OK'):
self.status = status
self.message = message
self.data = data
\ No newline at end of file
from flask import Blueprint, render_template, redirect
from flask import request
import requests
import json
from common import BaseRes
weather = Blueprint('weather', __name__, url_prefix='/weather')
weather_url = 'https://www.sojson.com/open/api/weather/json.shtml?city='
@weather.route('/')
def hello_world():
city = request.args.get('city')
if (city == ''):
return json.dumps(BaseRes(status=404, message='城市不能为空!'), default=lambda obj: obj.__dict__)
response = requests.get(weather_url + city)
response = json.loads(response.text)
if ('status' in response and response['status']== 200):
data = response['data']
return json.dumps(BaseRes(data['forecast']), default=lambda obj: obj.__dict__)
return '无该城市数据,请检查参数是否正确!'
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment