Stronę tą wyświetlono już: 3008 razy
Moduł request umożliwia wysyłanie żądań do serwera, lecz zanim przejdę do sedna konieczne jest doinstalowanie tego modułu za pomocą pip co też i z najdzikszą rozkoszą czynię wpisując w konsoli systemowej polecenie:
pip install requests
Skutkujące zainstalowaniem i wyświetleniem następujących danych w konsoli:
pip install requests Collecting requests Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB) | | 61kB 328kB/s Collecting chardet<3.1.0,>=3.0.2 (from requests) Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB) | | 143kB 652kB/s Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests) Downloading https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl (125kB) | | 133kB 656kB/s Collecting certifi>=2017.4.17 (from requests) Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB) | | 163kB 547kB/s Collecting idna<2.9,>=2.5 (from requests) Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB) | | 61kB 391kB/s Installing collected packages: chardet, urllib3, certifi, idna, requests
Teraz już można się poddać niekończącej się rozkoszy pisania kodu żądania:
import requests
url = 'http://localhost/add_record'
headers = {'content-length': '108','Content-Type': 'application/json'}
body = """{
"value": 100,
"description": "luty"
}"""
req = requests.post(url, headers=headers, data=body)
print(req.status_code)
print(req.headers)
print(req.text)
Zatrważającym wynikiem działania powyższego kodu powinno być:
200 {'Date': 'Sun, 12 Jan 2020 06:09:42 GMT', 'Server': 'Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.12', 'X-Powered-By': 'PHP/7.3.12', 'Access-Control-Allow-Origin': 'http://localhost/', 'Access-Control-Allow-Methods': 'POST', 'Access-Control-Max-Age': '3600', 'Access-Control-Allow-Headers': 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With', 'Content-Length': '31', 'Keep-Alive': 'timeout=5, max=100', 'Connection': 'Keep-Alive', 'Content-Type': 'application/json; charset=UTF-8'} {"message":"Data send successfully."}
Moduł request umożliwia również wysyłanie żądań:
- GET - wysyłanie żądania po dane;
- POST - wysyłanie żądania utworzenia nowego wpisu danych;
- PUT - wysłanie żądania nadpisania istniejących danych wysłanymi do serwera (wymaga przekazania np. id identyfikującego wpis w bazie danych);
- DELETE - wysyłanie żądania po usunięcie wpisu z bazy danych;
- PATCH - służy do nadpisywania danych, które po stronie serwera powinny być wykonywane jedynie wtedy, gdy nastąpiła w nich zmiana. Czyli nadpisuje dane ale pod warunkiem, że te, które zostały otrzymane zostały zmodyfikowane;
- HEAD - służy do wysyłania zapytania zawierającego tylko nagłówek bez ciała w celu sprawdzenia, czy dany zasób jest dostępny;
- CONNECT - służy do nawiązania połączenia z serwerem;
- OPTIONS - powinno zwracać listę żądań obsługiwanych przez serwer;