我是第一次(新手)使用Postman,测试了一个接受Json数据的Flask应用,而Postman一直给我这个错误yield call(action.meta.redirect, action.meta.path)
,但我的Flask应用看来还可以。 Flask应用程序接受Json并返回There was an error in evaluating the test script: SyntaxError: Unexpected token ':'
或200
,但似乎工作正常……
这是我通过Postman控制台发送给Flask的Json:
400
有什么令人担心的吗?任何提示,不胜感激..
在Flask中,我可以将数据保存到sql似乎工作正常的{"Date": "2020-13-16T13:37:22.501743", "MeterReading": 5}
响应。
200
更新FLASK应用代码
127.0.0.1 - - [17/Jun/2020 11:39:24] "[37mPOST /dataear HTTP/1.1[0m" 200 -
Python控制台运行FLASK应用程序
from flask import Flask, make_response, request, render_template, jsonify, make_response
import pandas as pd
from sqlalchemy import create_engine
from pandas.api.types import is_string_dtype
from pandas.api.types import is_numeric_dtype
app = Flask(__name__)
@app.route('/dataear', methods=['POST'])
def getdata():
r = request.get_json()
if r.keys() == {'Date', 'MeterReading'}:
try:
df = pd.json_normalize(r)
df = df.set_index('Date')
#print(is_string_dtype(df.index))
#print(is_numeric_dtype(df.MeterReading))
if is_string_dtype(df.index) and is_numeric_dtype(df.MeterReading):# checker to verify MeterReading is numerical
engine = create_engine('sqlite:///save_pandas.db', echo=True)
sqlite_connection = engine.connect()
sqlite_table = "OutsideTemp_MeterReading"
df.to_sql(sqlite_table, sqlite_connection, if_exists='append')
sqlite_connection.close()
print("Data saved to sql!")
return 'OK', 200
else:
print("rejected incorrect meter data unable to save data to SQL")
return 'Bad Request', 400
except:
print("rejected incorrect date format unable to save data to SQL")
return 'Bad Request', 400
else:
print("rejected incorrect keys for incoming json data")
return 'Bad Request', 400
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)