如何从该应用程序内调用Python Bottle API

问题描述 投票:1回答:1

我已经使用Python中的Bottle Library创建了API。它的端点看起来像这样

@app.get('/api/users/<id>', name='user')
def get_user(model, id):

    user = model.get_user(id)
    if not user:
        return HTTPError(404, 'User not found')
    else:
        response.content_type = "application/json"
        return json.dumps(user)

我想在同一应用程序的其他函数中调用API

@app.route('/users/<id>')
def users (id=1):
    user = request.get("http://localhost:8001/api/user/1")
    return template('user', user=user)

但是,这没有显示任何结果。每次都使请求超时

所以我的问题是,如何使用Requests库或通过任何其他方式从该应用程序内调用Bottle API。

python bottle
1个回答
0
投票

您是否以单线程模式(默认)运行Bottle?如果是这样,则您的内部get请求将永远挂起。这是因为您的服务器一次只能处理一个请求,而您却要求它一次处理两个请求:第一次调用/users/<id>,然后第二次调用/api/users/<id>

创可贴将修复为run the server in asynchronous mode。尝试这种方法,看看您的超时是否消失了:

© www.soinside.com 2019 - 2024. All rights reserved.