簡體   English   中英

向在 Python 中使用 Flask 創建的 API 發出發布請求時出現錯誤 400

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM