我当时在关注this tutorial人,一切都很顺利.然后他介绍了reqparse,我也跟着介绍.我试着测试我的代码,我得到了这个错误

我不知道我是否遗漏了一些非常明显的东西,但我很确定我完全复制了他的代码.代码如下:

from flask import Flask, request
from flask_restful import Api, Resource, reqparse

app = Flask(__name__)
api = Api(app)

#basic get and post
names = {"sai": {"age": 19, "gender": "male"},
            "bill": {"age": 23, "gender": "male"}}
class HelloWorld(Resource):
    def get(self, name, numb):
        return names[name]

    def post(self):
        return {"data": "Posted"}

api.add_resource(HelloWorld, "/helloworld/<string:name>/<int:numb>")

# getting larger data
pictures = {}
class picture(Resource):
    def get(self, picture_id):
        return pictures[picture_id]

    def put(self, picture_id):
        print(request.form['likes'])
        pass

api.add_resource(picture, "/picture/<int:picture_id>")

# reqparse
video_put_args = reqparse.RequestParser() # make new request parser object to make sure it fits the correct guidelines
video_put_args.add_argument("name", type=str, help="Name of the video")
video_put_args.add_argument("views", type=int, help="Views on the video")
video_put_args.add_argument("likes", type=int, help="Likes on the video")

videos = {}

class Video(Resource):
    def get(self, video_id):
        return videos[video_id]

    def post(self, video_id):
        args = video_put_args.parse_args()
        print(request.form['likes'])
        return {video_id: args}

api.add_resource(Video, "/video/<int:video_id>")

if __name__ == "__main__":
    app.run(debug=True)

测试休息.py公司

import requests

BASE = "http://127.0.0.1:5000/"

response = requests.post(BASE + 'video/1', {"likes": 10})

print(response.json())

推荐答案

据我所知,我不知道你为什么有问题,你确实复制了他是怎么做的.虽然我无法解释为什么他的代码有效,而你的代码无效,但这里有一个修复方案会起作用.他的视频已经有两年了,所以可能会被弃用.

import requests
import json

BASE = "http://127.0.0.1:5000/"

payload = {"likes": 10}

headers = {'accept': 'application/json'}
response = requests.post(BASE + 'video/1', json=payload)

print(response.json())

Python相关问答推荐

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

运行总计基于多列pandas的分组和总和

如何使用根据其他值相似的列从列表中获取的中间值填充空NaN数据

如何在Python中找到线性依赖mod 2

如何启动下载并在不击中磁盘的情况下呈现响应?

在pandas/python中计数嵌套类别

为什么常规操作不以其就地对应操作为基础?

Python—为什么我的代码返回一个TypeError

Odoo16:模板中使用的docs变量在哪里定义?

在极点中读取、扫描和接收有什么不同?

Python Mercury离线安装

解决Geopandas和Altair中的正图和投影问题

用0填充没有覆盖范围的垃圾箱

是否将Pandas 数据帧标题/标题以纯文本格式转换为字符串输出?

我怎样才能让深度测试在OpenGL中使用Python和PyGame呢?

try 在单个WITH_COLUMNS_SEQ操作中链接表达式时,使用Polars数据帧时出现ComputeError

try 使用RegEx解析由标识多行文本数据的3行头组成的日志(log)文件

使用Django标签显示信息

在被零整除的情况下,Python不遵循IEEE-754吗?

如何在Python中使用Polars向SQLite数据库写入数据?