[英]Error 400 when making post request to API created with Flask in Python
from flask import Flask
from flask_restful import Resource, Api, reqparse
import pandas as pd
import ast
app = Flask(__name__)
api = Api(app)
class Mail(Resource):
# methods go here
def get(self):
data = pd.read_csv('mails.csv') # read CSV
data = data.to_dict() # convert dataframe to dictionary
return {'data': data}, 200 # return data and 200 OK code
def post(self):
parser = reqparse.RequestParser() # initialize
parser.add_argument('address', required=True) # add args
parser.add_argument('plain', required=True)
parser.add_argument('html', required=True)
args = parser.parse_args() # parse arguments to dictionary
# create new dataframe containing new values
new_data = pd.DataFrame({
'address': args['address'],
'plain': args['plain'],
'html': args['html']
})
# read our CSV
data = pd.read_csv('mails.csv')
# add the newly provided values
data = data.append(new_data, ignore_index=True)
# save back to CSV
data.to_csv('mails.csv', index=False)
return {'data': data.to_dict()}, 200 # return data with 200 OK
def delete(self):
parser = reqparse.RequestParser() # initialize
parser.add_argument('address', required=True) # add userId arg
args = parser.parse_args() # parse arguments to dictionary
# read our CSV
data = pd.read_csv('mails.csv')
if args['address'] in list(data['address']):
data = data[data['address']] != args['address']
# save back to CSV
data.to_csv('mails.csv', index=False)
# return data and 200 OK
return {'data': data.to_dict()}, 200
else:
return 404
api.add_resource(Mail, '/mail')
app.run()
從另一個腳本我發出這樣的請求: requests.post('http://127.0.0.1:5000/mail?address=1@1.com&plain=1&html=1') 我不知道是什么錯了,每次都返回400。 任何幫助將非常感激。 我嘗試寫入的 CSV 文件為空。 GET 請求完成得很好。
我創建了一個 try except 塊並修復了函數的 return 語句,如果它失敗並發現錯誤是 Pandas 數據框的創建方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.