Das Titelthema im ADMIN 04/14 "Vernetzt speichern" sind Netzwerkdateisysteme, etwa Samba 4, verteilter Storage mit Ceph & GlusterFS und der Unix-Klassiker ... (mehr)

Haken und Ösen

Die Requests-Bibliothek öffnet Python auch ereignisbasierten Techniken. Das Argument »hooks« definiert Callback-Funktionen, die durch bestimmte Ereignisse automatisch ausgelöst werden. Sie werden in Form eines Dictionary definiert, in denen der Schlüssel das Ereignis und der Wert den Namen der aufzurufenden Funktion enthalten. Bislang steht allerdings als einziges Ereignis »response« zur Verfügung, das ausgelöst wird, wenn der Server antwortet.

callbacks = {'response': 'response_func'}

Nun übergibt man dieses Dictionary an »get()« :

requests.get(URL, hooks=callbacks)

Der angegebenen Funktion wird aufgerufen, sobald das resultierende »Response« -Objekt angekommen ist, das auch als Argument übergeben wird. Die Callback-Funktion kann auf dieses Objekt und seine Attribute zugreifen und beliebig auswerten.

Ein weiteres nützliches Argument heißt »proxies« . Es definiert in einem Dictionary Proxies für jedes Protokoll:

requests.get(URL, proxies={'http': 'localhost:3128'})

Extra-Komfort

Wie dieser Einblick zeigt, erleichtert die Requests-Bibliothek Webprogrammierern unter Python manche alltägliche Aufgabe. Mit Bordmitteln sind diese in der Regel auch zu schaffen, aber wer aufwendige HTTP-Clients schreibt, ist froh, sich nicht lange mit den Details aufhalten zu müssen.

Infos

  1. Python-Requests: http://www.python-requests.org
comments powered by Disqus
Mehr zum Thema

Python-Requests 2.0 veröffentlicht

In der aktuellen Version der Python-Bibliothek Requests wurde die Unterstützung von HTTPS mit Proxies verbessert.

Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023