Flask:如何接收传递给变量部分的所有字符?

2024-10-05 14:31:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的web服务:

from flask import Flask, escape

app = Flask(__name__)

@app.route('/test/<path:variable>')
    def print_variable(variable):
        return 'Variable: %s' % escape(variable)

在浏览器中运行时:

http://localhost:5000/test/https://www.whydoyoucut.com/stat.phtml?u=value1&g=value2

我收到:

Variable: https://www.whydoyoucut.com/stat.phtml

我的目标是:

Variable: https://www.whydoyoucut.com/stat.phtml?u=value1&g=value2

为了达到这个目标,我应该对代码进行哪些更改


Tags: httpstestcomappflask目标wwwvariable
2条回答

正如Upendra所说,您可以使用request.args从您的url获取查询字符串

要返回传递给api的url,可以执行以下操作:

from flask import Flask, escape, request

app = Flask(__name__)

@app.route('/test/<path:variable>')
def print_variable(variable):
    return_value = escape(variable)

    if request.args:
        return_value += '?'
        return_value += '&'.join([f'{k}={v}' for k, v in request.args.items()])

    return 'Variable: %s' % return_value

这里我们只是附加?如果给了的话。 您只需要格式化flask.Request接收的ImmutableMultiDict

结果是:

request: http://127.0.0.1:10000/test/https://www.whydoyoucut.com/stat.phtml?u=value1&g=value2
response: Variable: https://www.whydoyoucut.com/stat.phtml?u=value1&g=value2

request: http://127.0.0.1:10000/test/https://www.whydoyoucut.com/stat.phtml
response: Variable: https://www.whydoyoucut.com/stat.phtml

据我所知,你可以得到字符串,但你错过了参数。您可以使用request.args获取这些。以下代码段应该适合您:

from flask import Flask, escape, request

app = Flask(__name__)


@app.route('/test/<path:variable>')
def print_variable(variable):
    print(variable)
    print(request.args.get('u'))
    print(request.args.get('g'))
    return 'Variable: %s' % escape(variable)

相关问题 更多 >