web-dev-qa-db-fra.com

Comment puis-je obtenir l'URL de base actuelle dans la fiole?

Dans le code ci-dessous, je veux stocker l'URL dans une variable pour vérifier l'erreur sur laquelle l'erreur d'URL s'est produite.

@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)

Sortie: **

* 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 -

**

je veux que ce message "127.0.0.1 - - [28/Mar/2017 10:44:53] "GET /flights HTTP/1.1" 200 -" devrait être stocké dans une variable ou comment puis-je obtenir l'URL actuelle qui s'exécute. Je vous remercie

4
Ravi Bhushan

Vous pouvez utiliser la méthode base_url sur la fonction request du flacon.

from flask import Flask, request

app = Flask(__name__)


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


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

Ceci retourne ce qui suit si la route d'application est /foo:

http://localhost:5000/foo
10
Neill Herbst

Utilisez flask.request.url pour récupérer l’URL demandée. Consultez: http://flask.pocoo.org/docs/1.0/api/#flask.Request (ou la v0.12 docs )

1
MrLeeh