【问题标题】:How can I get current base URI in flask? [duplicate]如何在烧瓶中获取当前的基本 URI? [复制]
【发布时间】: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?

【问题讨论】:

    标签: python python-3.x url flask


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 1970-01-01
      • 2019-11-08
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 2019-01-16
      相关资源
      最近更新 更多