如何在烧瓶中获取当前的基本 URI? [复制]

Posted

技术标签:

【中文标题】如何在烧瓶中获取当前的基本 URI? [复制]【英文标题】:How can I get current base URI in flask? [duplicate] 【发布时间】:2017-08-21 02:00:48 【问题描述】:

在下面的代码中,我想将 URL 存储在变量中以检查发生 URL 错误的错误。

@app.route('/flights', methods=['GET'])
def get_flight():
    flight_data= mongo.db.flight_details
    info = []
    for index in flight_data.find():
        info.append('flight_name': index['flight_name'], 'flight_no': index['flight_no'], 'total_seat': index['total_seat'] )
    if request.headers['Accept'] == 'application/xml':
        template = render_template('data.xml', info=info)
        xml_response = make_response(template)
        xml_response.headers['Accept'] = 'application/xml'
        logger.info('sucessful got data')
        return xml_response
    elif request.headers['Accept'] == 'application/json':
        logger.info('sucessful got data')
        return jsonify(info)

输出:

* Restarting with stat
 * Debugger is active!
 * Debugger PIN: 165-678-508
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [28/Mar/2017 10:44:53] "GET /flights HTTP/1.1" 200 -

我想要这条消息

"127.0.0.1 - - [28/Mar/2017 10:44:53] "GET /flights HTTP/1.1" 200 -"

应该存储在一个变量中,或者如何获取当前正在执行的 URL?

【问题讨论】:

【参考方案1】:

你可以在flask的request函数上使用base_url方法。

from flask import Flask, request

app = Flask(__name__)

@app.route('/foo')
def index():
    return request.base_url
    

if __name__ == '__main__':
    app.run()

如果应用程序路由是/foo,则返回以下内容:

http://localhost:5000/foo

【讨论】:

127.0.0.1 - - [28/Mar/2017 10:44:53] "GET /flights HTTP/1.1" 200 -...如果想返回整个东西,那我有什么做吗? @RaviBhushan 我不知道有什么方法可以捕获烧瓶服务器的标准输出。 好的....谢谢回答【参考方案2】:

使用flask.request.url 检索您请求的网址。看看:http://flask.pocoo.org/docs/1.0/api/#flask.Request(或v0.12 docs)

【讨论】:

以上是关于如何在烧瓶中获取当前的基本 URI? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 URI 中获取文件路径? [复制]

如何在烧瓶响应中返回图像? [复制]

如何在烧瓶中记录信息? [复制]

如何从 Spotify 获取艺术家的 URI,而无需从 Spotify 手动复制艺术家的 URI

如何在烧瓶登录中跟踪当前用户?

如何将烧瓶表单提交到列表? [复制]