Skip to content

Instantly share code, notes, and snippets.

@ciscoinfo
Created September 5, 2021 16:06
Show Gist options
  • Select an option

  • Save ciscoinfo/96fa8ab10947bd927dfac557ebb5009e to your computer and use it in GitHub Desktop.

Select an option

Save ciscoinfo/96fa8ab10947bd927dfac557ebb5009e to your computer and use it in GitHub Desktop.
attached files for my article : Flask (Python) : lire une requête GET
from my_app import app
if __name__ == "__main__":
app.run()
import requests
from pprint import pprint
BASE_URL = "http://127.0.0.1:5000/"
string = "alex"
integer = 20
QUERY = f"?name={string}&age={integer}"
def get_1():
print("\n------- get_1_request.query_string -------")
url = f"{BASE_URL}/get/1{QUERY}"
print(f"{url=}")
response = requests.get(url)
pprint(response.json())
def get_2():
print("\n------- request.args -------")
url = f"{BASE_URL}/get/2{QUERY}"
print(f"{url=}")
response = requests.get(url)
pprint(response.json())
def get_3():
print("\n------- request.args + parsing -------")
url = f"{BASE_URL}/get/3{QUERY}"
print(f"{url=}")
response = requests.get(url)
pprint(response.json())
def get_3_default():
print("\n------- request.args + parsing with default value -------")
url = f"{BASE_URL}/get/3?age={integer}"
print(f"{url=}")
response = requests.get(url)
pprint(response.json())
def get_3_string():
print("\n------- parameter name -------")
url = f"{BASE_URL}/get/3/{string}"
print(f"{url=}")
response = requests.get(url)
pprint(response.json())
def get_3_integer():
print("\n------- parameter age -------")
url = f"{BASE_URL}/get/3/{integer}"
print(f"{url=}")
response = requests.get(url)
pprint(response.json())
if __name__ == "__main__":
get_1()
input()
get_2()
input()
get_3()
input()
get_3_default()
input()
get_3_string()
input()
get_3_integer()
# from flask import jsonify
from my_app import app
from flask import request
# Note that :
#
# app.route has the default parameter methods=["GET"]
# Then : @app.route("/get") is equivalent as : @app.route("/get", methods=["GET"])
#
# Flask builds the response, wrapping dict with flask.jsonify() and adding the status code 200
# Then : return {key: value} is equivalent as : return jsonify({key: value}), 200
# query_string
@app.route("/get/1")
def get_1():
result = request.query_string.decode('UTF-8')
return {"result": result}
# request.args
@app.route("/get/2")
def get_2():
return request.args
# parse args
@app.route("/get/3")
def get_3():
name = request.args.get("name", default="default name", type=str)
age = request.args.get("age", default=50, type=int)
return {"name": name, "age": age}
# string parameter
@app.route("/get/3/<string:name>")
def get_4(name):
return {"name": name, "type": str(type(name))}
# int parameter
@app.route("/get/3/<int:age>")
def get_5(age):
return {"age": age, "type": str(type(age))}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment