PythonDjangoGenelYazılım

Python Django Requests Kütüphanesi Kullanımı

Python dilinde kullanımından en çok zevk aldığım kütüphane ile karşınızdayım. Hadi o zaman birlikte Python Django Requests Kütüphanesi Kullanımına bakalım.

Python Requests Modülü Nedir

Genellikle bu modülü Django’da api istekleri atarken kullanıyorum. Genel amacı da o zaten, bu modül ile api servislerine PUT, DELETE, POST gibi istekler atabilirsiniz.

Django Python Requests Modülü Kurulumu

Öncelikle paket yöneticisini kurmanız gerekir. Python3 üzerinden örnek verirsek;

sudo apt-get install python3-pip

bu şekilde python3 için paket yöneticisini kuruyoruz.

pip3 install requests

Komutuyla requests kütüphanemizi kuruyoruz.

Kullanmak istediğimiz dosyada import edip kullanmaya başlayabiliriz, bunun için dosyanın üst satırlarına(kullanımdan önce)

import requests

İmport komutumuzu ekliyoruz.

Requests Modülü Kullanarak İstek Göndermek

>>> r = requests.get('https://kivircikyazilimci.com/get')
>>> r = requests.post('https://kivircikyazilimci.com/post')
>>> r = requests.put('https://kivircikyazilimci.com/put')
>>> r = requests.delete('https://kivircikyazilimci.com/delete')

düz bir şekilde get, post, put, delete istekleri bu şekilde gönderiliyor ama her zaman düz göndermek yetmiyor bazen parametre vb argümanlar ile desteklenmesi gerekebiliyor.

Requests Modülü Parametre Göndermek

>>> r = requests.get('https://kivircikyazilimci.com/get', params={"kategori":"yazılım","marka":"dünya"})
>>> r.url
'https://kivircikyazilimci.com/get?marka=yazılım&kategori=dünya'

params sözlüğü içinde parametre geçtim, url methodu ile de istek yapılan url adresini ulaşabilirsiniz. Dikkat ettiyseniz verdiğimiz parametreler url adresinin sonuna eklendi.

Bazen istek attığımız sayfa başka bir url’e yönleniyor olabilir, bu aktarmayı takip edebilir veya etmeyebiliriz, bunun için de allow_redirects=True veya False kullanılıyor.

>>> r = requests.get("https://kivircikyazilimci.com/redirect/1",allow_redirects=False)
>>> r.status_code
302
>>> r = requests.get("https://kivircikyazilimci.com/redirect/1",allow_redirects=True)
>>> r.status_code
200

allow_redirects=False yapıldığında yönlendirmeyi kapattı ve o istek url’i status_code değeri 302 döndü. True yapınca da yönlendirme kabul edildi ve status_code değeri 200 döndü. HTTP status kodlarını incelemek isterseniz buraya tıklayabilirsiniz.

Hadi birlikte GET değilde POST isteği atalım

>>> r = requests.post("https://kivircikyazilimci.com/post", data={"username":"sinan","password":"asd123"})
>>> r.status_code
200
>>> r.json()
{'files': {}, 'args': {}, 'url': 'https://kivircikyazilimci.com/post', 'json': None, 'data': '', 'headers': {'Host': 'kivircikyazilimci', 'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'close', 'Content-Length': '30', 'User-Agent': 'python-requests/2.9.1', 'Content-Type': 'application/x-www-form-urlencoded'}, 'origin': '78.190.133.110', 'form': {'username': 'kivircik', 'password': 'asd123'}}
>>> r.json()["form"]
{'username': 'kivircik', 'password': 'asd123'}

Dikkat ettiyseniz data parametresi ile username ve password bilgilerini formdata olarak gönderdim. Ardından status_code methodu ile 200 yani başarı sağladığını kontrol ettim. Ardından json methodu ile dönen değeri ekrana bastırdım. Kullandığımız httpbin.org servisi, post ettiğimiz parametreleri bize geri döndürüyor. Bu nedenle json içinden sadece form alanını çekerek gönderdiğim parametreleri görebildim.

Python Requests Modülü Text Getirme

Sitenin HTML içeriğini döndürür.

>>> r = requests.get("https://kivircikyazilimci.com/")
>>> r.text

Python Requests Modülü Headers Getirme

Header bilgilerini gösterir.

Dilerseniz istediğiniz header bilgilerini siz get isteği ile birlikte belirtebilirsiniz.

r = requests.get("https://kivircikyazilimci.com/", headers={'user-agent': 'kivircikyazilimci'})

Python Requests Modülü Url Getirme

Hangi url adresine istek gönderdiğini döner. İstek yaparken parametre olarak bazı değerler gönderebilirsiniz.

>>> r = requests.get("https://kivircikyazilimci.com/", params={"ad":"kivircik","soyad":"yazilimci"})
>>> r.url
'https://kivircikyazilimci.com/?soyad=yazilimci&ad=kivirick'

Url adresinin sonunda verdiğim parametrelerin nasıl iliştirildiğine dikkat edin.

Python Requests Modülü status_code Getirme

İsteğin HTTP durum kodunu döndürür.

>>> r = requests.get("http://httpbin.org/")
>>> r.status_code
200

Aslında requests modülü hakkında bilmeniz gereken şeyler bunlar, elimden geldiğince aktarmaya çalıştım. Kodla kalın, iyi kodlamalar.

Kıvırcık

Yazılım dersleri üzerine yazı paylaşacağım.

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu