猿问

Flask 中的 Http PUT 方法断言失败

我最近参加了很多实践活动。我一直在研究 Flask 编程并尝试在在线编程平台和挑战中找到的各种示例。我被困在一个解决方案中,其中我能够清除 7 个测试用例,而其中一个已经失败了很长时间。我无法在我编写的这个解决方案之外查看或设置我的想法。


请有人好心帮我破解这个 PUT http 测试用例。我附上了测试用例和我的源代码。


blogs_app.py

from flask import Flask, request

from flask_restful import Resource, Api, abort


app = Flask(__name__)

api = Api(app)



blogs = {}


class BlogsAPI(Resource):

    def get(self, blog_id=None):

      if blog_id is None:

            return blogs

      if blog_id not in blogs:

          abort(404,message="Blog_Id {} doesn't exist".format(blog_id))

      return blogs[blog_id]


def post(self, blog_id):

  if blog_id not in blogs:

        title = request.form['title']

        article_text = request.form['article_text']

        created_at = '%Y-%m-%d %H:%M:%S'

        blogs[blog_id] = {'title': title, 'article_text':article_text, 'created_at':created_at}

        return {blog_id: blogs[blog_id]}

  abort(404, message='Blog_Id {} already exists'.format(blog_id))


def put(self, blog_id):

  if blog_id not in blogs:

    abort(404,message="Blog_Id {} doesn't exist".format(blog_id))

  blogs[blog_id] = request.form['title']

  return {blog_id: blogs[blog_id]}


def delete(self, blog_id):

  if blog_id in blogs:

    response_string = 'Blog with Id {} is deleted'.format(blog_id)

    del blogs[blog_id]

    return response_string

  abort(404, message="Blog_Id {} doesn't exist".format(blog_id))


api.add_resource(BlogsAPI, '/blogs/',

                              '/blogs/<int:blog_id>/')


if __name__ == '__main__':

    app.run()

这是提供的测试用例文件。


动漫人物
浏览 120回答 3
3回答

阿波罗的战车

尝试这个。def put(self, blog_id):&nbsp; &nbsp; &nbsp; &nbsp; if blog_id not in blogs:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; abort(404, message="Blog_Id {} doesn't exist".format(blog_id))&nbsp; &nbsp; &nbsp; &nbsp; blogs[blog_id]['title'] = request.form['title']&nbsp; &nbsp; &nbsp; &nbsp; return blogs[blog_id]

神不在的星期二

def put(self, blog_id):&nbsp; if blog_id not in blogs:&nbsp; &nbsp; abort(404,message="Blog_Id {} doesn't exist".format(blog_id))&nbsp; **blogs[blog_id]['title'] = request.form['title']**&nbsp; return {blog_id: blogs[blog_id]}更改 put 方法

阿晨1998

主要问题是未给出更新的“密钥”,因此我们必须首先检查测试用例,根据测试用例,更新的密钥是“标题”,因此我们必须使用 HTTP 请求更新此密钥值.def put(self, blog_id):&nbsp; &nbsp; &nbsp;if blog_id not in blogs:&nbsp; &nbsp; &nbsp; &nbsp; abort(404,message="Blog_Id {} doesn't exist".format(blog_id))&nbsp; &nbsp; &nbsp;blogs[blog_id]['title'] = request.form['title']&nbsp; &nbsp; &nbsp;return {blog_id: blogs[blog_id]}
随时随地看视频慕课网APP

相关分类

Python
我要回答