Jak użyć Requsts do wysłania argumentów w url, danych POST, danych JSON lub pliku do Flask
Ten kod wyświetli różne dane przysłane z requests
aby pokazać jak je odebrać we `flask``.
from flask import Flask, request
app = Flask(__name__)
@app.route("/", methods=['GET', 'POST'])
def index():
print('args:', request.args)
print('form:', request.form)
print('json:', request.json)
print('data:', request.data)
return ''
if __name__ == '__main__':
app.run()
Wysłanie jako argumenty w url - params=
import requests
data = {'text': 'Hello', 'value': 100}
r = requests.get('http://localhost:5000/', params=data)
#r = requests.post('http://localhost:5000/', params=data)
Wynik:
args: ImmutableMultiDict([('text', 'Hello'), ('value', '100')])
form: ImmutableMultiDict([])
json: None
data: b''
files: ImmutableMultiDict([])
params=
jest używany głównie w get()
ale może być także użyte w post()
Wysłanie jako formularz - data=
import requests
data = {'text': 'Hello', 'value': 100}
#r = requests.get('http://localhost:5000/', data=data)
r = requests.post('http://localhost:5000/', data=data)
Wynik:
args: ImmutableMultiDict([])
form: ImmutableMultiDict([('text', 'Hello'), ('value', '100')])
json: None
data: b''
files: ImmutableMultiDict([])
data=
jest używany głównie w post()
ale może być także użyte w get()
Wysłanie jako JSON - json=
import requests
data = {'text': 'Hello', 'value': 100}
#r = requests.get('http://localhost:5000/', json=data)
r = requests.post('http://localhost:5000/', json=data)
Wynik:
args: ImmutableMultiDict([])
form: ImmutableMultiDict([])
json: {'text': 'Hello', 'value': 100}
data: b'{"text": "Hello", "value": 100}'
files: ImmutableMultiDict([])
json=
jest używany głównie w post()
ale może być także użyte w get()
Wysłanie jako plik - files=
import requests
data = {'text': 'Hello', 'value': 100}
#r = requests.get('http://localhost:5000/', files=data)
r = requests.post('http://localhost:5000/', files=data)
Wynik:
args: ImmutableMultiDict([])
form: ImmutableMultiDict([])
json: None
data: b''
files: ImmutableMultiDict([('text', <FileStorage: 'text' (None)>), ('value', <FileStorage: 'value' (None)>)])
files=
jest używany głównie w post()
ale może być także użyte w get()
Dane można także zobaczyć jeśli się wyświetli dane requestu
import requests
data = {'text': 'Hello', 'value': 100}
r = requests.post('https://httpbin.org/post', data=data)
print('form:', r.request.body)
r = requests.post('https://httpbin.org/post', json=data)
print('json:', r.request.body)
r = requests.post('https://httpbin.org/post', files=data)
print('file:', r.request.body)
Wynik:
form: text=Hello&value=100
json: b'{"text": "Hello", "value": 100}'
file: b'--2a0f189d55cfce27736cb0ce44d8621b\r\nContent-Disposition: form-data; name="text"; filename="text"\r\n\r\nHello\r\n--2a0f189d55cfce27736cb0ce44d8621b\r\nContent-Disposition: form-data; name="value"; filename="value"\r\n\r\n100\r\n--2a0f189d55cfce27736cb0ce44d8621b--\r\n'
If you like it
Buy a Coffee
Buy a Coffee