Python istekleri

Python işlevleri ve meth

Python'da bir uygulama oluştururken, bir üçüncü taraf hizmetine bağlanmak istediğiniz bir zaman gelebilir. Örneğin, bir fitness aracı oluşturuyorsanız, egzersiz verilerinizi görebilmek için Fitbit API'sine bağlanmak isteyebilirsiniz; metin mesajları gönderebilen bir uygulama Twilio API'sine bağlanabilir.

Python'da istek kitaplığı, üçüncü taraf web hizmetlerini uygulamalarınıza bağlayabilmeniz için isteklerde bulunmanıza olanak tanır. Bu kılavuzda, Python istek kitaplığı ve onu HTTP istekleri göndermek için nasıl kullanabileceğinizi öğreneceğiz.




Web İstekleri: Bir Tazeleme

İstekler merkezdedir. İnternetin. Bu makaleye tıkladığınızda, Python.Engineering sunucusuna bir HTTP isteği gönderildi. Bu istek, sunucularımıza, sunucumuzun sayfayı bulabilmesi için hangi web sayfasını görmek istediğinizi söyledi. Web sayfası bulunduğunda, web sunucumuz onu tarayıcınıza geri döndürdü. Bu süreç, bu öğreticiyi görmenizi sağlar.

Web istekleri birçok farklı biçimde gelir. Bu web sayfasını görüntülemek için yaptığınız istek türüne GET isteği adı verildi. Bu tür bir istek, verileri almanızı sağlar. Bir sunucudaki kaynakları değiştirmek için kullanılan POST ve PUT gibi başka istek türleri de vardır. Bu eğitimin amaçları doğrultusunda,’GET ve POST isteklerine odaklanacağız.




İstekler Nasıl Yüklenir

İstekler, web oluşturmanıza olanak tanıyan Python için HTTP kitaplığıdır. request.

Python kullanarak web istekleri yapabilmemiz için Python request kod kitaplığını kurmamız gerekiyor. Bunu aşağıdaki komutu kullanarak yapabiliriz:

pip kurulum istekleri

Python paketini indirdiğimize göre, bir web isteğinde bulunmaya hazırız.




GET İsteği Nasıl Yapılır?

En yaygın web isteği türü. ll make bir GET isteğidir. Bu tür bir istek, bir sunucudan veri almanıza olanak tanır.

Katılımcıların %81'i, bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleşin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan daha az zaman harcadı.

Diyelim ki öyleyiz. kedi gerçeklerinin bir listesini almanızı sağlayan bir uygulama yapmak. Bunu yapmak için cat-facts adlı bir API kullanacağız. Bu API herkese açıktır, dolayısıyla oturum açmak için herhangi bir kimlik bilgisine ihtiyacımız yoktur. API'ye istekte bulunmak için bu kodu kullanabiliriz:

istekleri içe aktar res = request.get('https://cat-fact.herokuapp.com/facts') print(res.status_code)
< p>Bu kod şunu döndürdü: 200. Haydi kodumuzu parçalayalım.

İlk satırda, istek kitaplığını içe aktardık. Bu, öğreticimizde kullanacağımız istek kitaplığına erişmemize izin verdi. Sonra bir web isteği yapmak için requests.get() yöntemini kullandık. Başka türde istekler yapmak için .put() veya .post() gibi yöntemler kullanabilirdik, ancak bu durumda yalnızca cat- fact API.

Ardından, web isteğimizden durum kodunu yazdırdık. 200 numara bize geri döndü, bu da bize web isteğimizin başarıyla yapıldığını söyledi. Bu sayıların ne anlama geldiğini öğreticide daha sonra tartışacağız.




Bir İsteği Görüntüleme

Yukarıdaki örneğimizde, isteğimizin durum kodunu yazdırdık. Ancak aldığımız verileri nasıl görebiliriz? Kedi gerçekleri nerede? İşte burada .text ve .json() yöntemleri devreye girer.

Metin Yanıtını Görüntüle

.text yöntemini kullanabiliriz. web isteğimizin sonucu:

istekleri içe aktar res = request.get('https://cat-fact .herokuapp.com/facts') print(res.text)

Bu kod, kedi gerçeklerinin bir listesini döndürdü. Ancak bu bizim için pek pratik değil çünkü sorguladığımız veriler bir API. Artık kedi gerçeklerinin bir Python listesine sahip olsak da, bunları düz metin halinde oldukları için okumamız zor.

Kedi gerçeklerimizin saklanabileceği daha kullanışlı bir biçim JSON'dur. Bu kodu kullanarak isteğimizden JSON verilerini alabiliriz:

print(res.json())

Kodumuz, uzun bir kedi gerçekleri listesi döndürür. İşte listedeki ilk kayıt:

{'_id': '58e009550aac31001185ed12', 'text' : 'YouTube'daki en eski kedi videosu 1894'e kadar uzanır.', 'type': 'cat', 'user': {'_id': '58e007480aac31001185ecef', 'name': {'first': 'Kasimir', ' last': 'Schulz'}}, 'upvotes': 6, 'userUpvoted': Yok}

Başarı! Kedi gerçekleri listemize ulaşmayı başardık.





POST İsteği Nasıl Yapılır

POST isteği yapmak için istek kitaplığını da kullanabilirsiniz. Bu, bir web sunucusunda depolanan verileri değiştirmenize olanak tanır.

Bu örnek için Airtable API'sini kullanacağız. Bunun nedeni, POST isteklerini destekleyen bir API kullanmamız gerekmesi ve cat-facts API'sinin salt okunur olmasıdır.

< p>Diyelim ki içtiğimiz tüm bardakları kaydettiğimiz bir veri tabanımız var. Az önce bir bardak çay daha içtik ve veri tabanına eklemek istiyoruz. Bunu şu kodu kullanarak yapabiliriz:

alma istekleri üstbilgileri = { 'Authorization': 'Bearer API_KEY', 'Content-Type': 'application/json', } data = '{"records": [{"fields": {"İçki": "Siyah Decaf Tea"}}]}' res = request.post('https://cat-fact.herokuapp.com/facts' , başlıklar=başlıklar, veri=veri) print(re s.json())

Kodumuz döndürüldü:

{ 'records': [{'id': 'recqUEPuXEAXaNl1L','fields': {'Drink':'Black Decaf Tea','Date': '2020-06-16T08:53:02.000Z'}, 'createdTime' : '2020-06-16T08:53:02.000Z'}]}

Bu bize HTTP isteğimizin başarılı olduğunu bildirir. API'lerini kullanarak Airtable veritabanımıza bir kayıt ekledik. Bu kod satırlarını daha ayrıntılı tartışalım.

Önce, kodumuzda HTTP istekleri yapabilmek için istek kitaplığını içe aktardık.

Ardından tanımladık. iki anahtar ve değer içeren bir sözlük: biri kimlik doğrulama anahtarımızı depolayan ve diğeri web sunucusuna gönderdiğimiz içeriğin türünü belirten. Bunlar, Airtable API'sine istekte bulunmak için göndermemiz gereken başlıklardır.

Sonra, POST isteğimizle birlikte göndermek istediğimiz verileri depolayan data adında bir değişken tanımladık. Bu durumda, “Siyah Decaf Tea” veritabanımıza. Daha sonra requests.post() yöntemini kullandık ve başlıklarımızı ve verilerimizi parametre olarak belirledik, bu da Airtable API'sine bir POST isteği yapmamıza izin verdi.

" Python.Engineering hayatıma en çok ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir eğitim kampıyla eşleşmeme yardımcı oldu. Mezun olduktan iki ay sonra, hayattaki değerlerime ve hedeflerime uygun, hayalimdeki işi buldum!"

Venus, Rockbot'ta Yazılım Mühendisi

Son olarak, talebimizin sonucunu res.json() kullanarak JSON formatında yazdırdık.< /p>


HTTP Durum Kodları

HTTP protokolü, bir web isteği yaptığınızda benzersiz bir durum kodu döndürür. Bu, web isteğinizin başarılı olup olmadığını veya herhangi bir hatanın oluşup oluşmadığını görmenizi sağlar. Muhtemelen bunlardan birkaçını görmüşsünüzdür, örneğin 404.

Python istekleriyle istekte bulunurken karşılaşabileceğiniz durum kodlarının bir referans listesi:

  • 1XX: Bilgi
  • 2XX: İstek başarıyla yapıldı
  • 3XX: İstek yeniden yönlendirildi
  • 4XX: İstemci tarafı hatası
  • li>
  • 5XX: Sunucu tarafı hatası

Bu durum kodlarını bilmek, programımıza hata ayıklama eklememizi sağlar. Daha önceki cat-facts API örneğinden GET isteğini alalım. Erişmekte olduğumuz kaynak bulunamazsa bir mesaj yazdırmak istediğimizi varsayalım. Bunu şu kodu kullanarak yapabiliriz:

import request res = request.get('https://cat) -fact.herokuapp.com/facts') ise res.status_code == 200: print("Success") else : print("Error")

Kodumuz şu sonucu verdi: Başarılı. İsteğimizin durum kodu 200 olduğundan, “Success” konsola yazdırılır. Ancak, isteğimiz başarısız olduysa – örneğin, geçersiz bir URL belirtmiş olabiliriz – ardından “Hata” konsola yazdırılırdı.




Sonuç

Python istek kitaplığı, Python'da HTTP istekleri yapmanıza izin verir. Bu kılavuzda, GET ve POST istekleri yapmak için Python istek kitaplığının nasıl kullanıldığını tartıştık, ancak kitaplığı kullanarak PUT ve DELETE istekleri de yapabilirsiniz.

< gibi bir yöntem kullandığınızda code>requests.get() veya requests.post(), Python erişmek istediğiniz web kaynağına bir istekte bulunacaktır. İsteğinize başlıklar ve veriler ekleyebilirsiniz; bu, sahip olduğunuz bir web kaynağında değişiklik yapmak istiyorsanız bilgi göndermenize olanak tanır.

Artık Python isteklerini kullanmaya hazırsınız. bir uzman gibi kitaplık!





Python istekleri: StackOverflow Questions

Tutorials