How to process GET Query String with Flask
Asked Answered
P

2

10

How do I process a long GET request with Flask? Is is possible to get a dictionary all the params?

Here is the query string I'm trying to parse:

/?msisdn=19150000001&to=12108054321&messageId=000000FFFB0356D1&text=This+is+an+inbound+message &type=text&message-timestamp=2012-08-19+20%3A38%3A23

And Here is the code I have to far which only gets the 'msisdn' value:

import os
from flask import Flask
from flask import request
from flask import jsonify

app = Flask(__name__)

@app.route('/', methods=['GET'])
    def hello():
        if request.method == 'GET':
            json = request.args.getlist('msisdn')
            return str(json)
        else:
            return 'Hello World!'
Precedent answered 18/6, 2014 at 18:35 Comment(2)
Have you try print request.argsFirecure
thanks you! such an obvious solution. I need to get a rubber duckPrecedent
D
12

Yes. request.args is a MultiDict:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/")
def hello():
    all_args = request.args.lists()
    return jsonify(all_args)
Decide answered 18/6, 2014 at 18:45 Comment(1)
Same here! Did exactly what I was looking for!Gnosticize
B
25

if you want to convert the query string (MultiDict to normal dict)

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/")
def hello():
    all_args = request.args.to_dict()
    return jsonify(all_args)
Barbuto answered 4/1, 2016 at 19:28 Comment(0)
D
12

Yes. request.args is a MultiDict:

from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route("/")
def hello():
    all_args = request.args.lists()
    return jsonify(all_args)
Decide answered 18/6, 2014 at 18:45 Comment(1)
Same here! Did exactly what I was looking for!Gnosticize

© 2022 - 2024 — McMap. All rights reserved.