无法发布,因为我缺少参数



我对Python很陌生,甚至对Flask RESTful也很陌生。我正在尝试确定路线,但POST遇到了问题。我在使用Postman时出错,说"TypeError:post((缺少3个必需的位置参数:‘username’、‘avatar’和‘friend_code’">,但我在POST请求的正文中确实有这些参数。

下面是我的代码。我希望只能从根目录POST

from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
users = []

class User(Resource):
def get(self, username):
# /<username>
for user in users:
if user['username'] == username:
return user
def post(self, username, avatar, friend_code):
# / root
user = {'username': username, 'avatar': avatar,
'friend_code': friend_code}
users.append(user)
return user

api.add_resource(User, '/', '/<string:username>')

app.run(debug=True)

您的post方法需要3个参数username, avatar, friend_code

当您执行api.add_resource(User, '/', '/<string:username>')时,您只传递一个参数(username(。那么,其他两个(头像和好友代码(呢?

要么将它们硬编码为post方法始终可以选择的一些常量值,要么使用reqparse从有效负载的主体解析它们。

大致如下:

from flask_restful import Resource, Api, reqparse
parser = reqparse.RequestParser()
def post(self):
parser.add_argument('avatar', type=str)
parser.add_argument('friend_code', type=str)
args = parser.parse_args()
user = {'username': username, 'avatar': avatar,
'friend_code': friend_code}
users.append(user)
return user

下面是一个很好的链接,让你开始用Flask-RESTful构建基本的RESTful API。

相关内容

  • 没有找到相关文章

最新更新