我正在关注此视频:https://www.youtube.com/watch?v=xqJXDZvtogY
一切正常,直到我为 PUT 请求编写curl 命令。我的命令提示符中显示以下错误: “未尝试加载 JSON 数据,因为请求内容类型不是“application/json”。”
我的Python文件App.py是:
from flask import Flask
from flask_restful import Resource, Api, reqparse
app = Flask("VideoAPI")
api = Api(app)
parser = reqparse.RequestParser()
parser.add_argument('title', required=True)
videos = {
'video1' : {'title':'Hello world in python'},
'video2' : {'title':'Why R is good'}
}
class Video(Resource):
def get(self, video_id):
if video_id=="all":
return videos
return videos[video_id]
def put(self, video_id):
args = parser.parse_args()
new_video = {'title': args['title']}
videos[video_id] = new_video
return {video_id: videos[video_id]}, 201
api.add_resource(Video, '/videos/<video_id>')
if __name__=='__main__':
app.run()
我的curl命令:curl http://localhost:5000/videos/video3 -d“title”=“我的新视频”-X PUT
我的版本:Werkzeug/3.0.1 Python/3.12.1
经过研究和尝试解决后,有人建议curl命令并不完美并且与软件包配合得很好,所以我尝试了以下curl命令,它们也导致了错误。
可能是什么问题?
经过大量实验:对我有用的curl命令是:>curl http://localhost:5000/videos/video3 -d "{"title":"titlename"}" -H "Content-Type:application /json"-X PUT