为了账号安全,请及时绑定邮箱和手机立即绑定

Flask 中的 Http PUT 方法断言失败

Flask 中的 Http PUT 方法断言失败

动漫人物 2023-02-07 14:18:23
我最近参加了很多实践活动。我一直在研究 Flask 编程并尝试在在线编程平台和挑战中找到的各种示例。我被困在一个解决方案中,其中我能够清除 7 个测试用例,而其中一个已经失败了很长时间。我无法在我编写的这个解决方案之外查看或设置我的想法。请有人好心帮我破解这个 PUT http 测试用例。我附上了测试用例和我的源代码。blogs_app.pyfrom flask import Flask, requestfrom flask_restful import Resource, Api, abortapp = 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()这是提供的测试用例文件。
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

尝试这个。


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]['title'] = request.form['title']

        return blogs[blog_id]


查看完整回答
反对 回复 2023-02-07
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

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]['title'] = request.form['title']**

  return {blog_id: blogs[blog_id]}

更改 put 方法


查看完整回答
反对 回复 2023-02-07
?
阿晨1998

TA贡献2037条经验 获得超6个赞

主要问题是未给出更新的“密钥”,因此我们必须首先检查测试用例,根据测试用例,更新的密钥是“标题”,因此我们必须使用 HTTP 请求更新此密钥值.


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]['title'] = request.form['title']

     return {blog_id: blogs[blog_id]}


查看完整回答
反对 回复 2023-02-07
  • 3 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信