Verwenden Sie das Anforderungsmodul, um Formulardaten in Python zu veröffentlichen
Dieses Tutorial beschreibt das Python-Modul requests
und veranschaulicht, wie wir dieses Modul verwenden können, um Formulardaten in Python zu veröffentlichen.
Verwenden Sie das requests
-Modul, um Formulardaten in Python zu veröffentlichen
Python kann für den Zugriff auf Webseiten und auch zum Posten von Inhalten auf den Webseiten verwendet werden.
Unabhängig davon, ob es verschiedene Module wie httplib
, urllib
, httplib2
usw. gibt, das requests
-Modul in Python ist das einfachste und kann mächtige Programme mit GET
- und POST
-Methoden schreiben.
Die Bibliothek requests
ist einer der Hauptaspekte von Python zum Erstellen von HTTP-Anfragen an eine definierte URL.
Einführung in die Anforderungsmethode POST
Das World Wide Web HTTP unterstützt die Anfragemethode POST
. Betrachtet man das Format, fordert die Anforderungsmethode POST
, dass ein Webserver die im Hauptteil der Anforderungsnachricht enthaltenen Daten akzeptiert und sie anscheinend speichert.
Wir verwenden es oft, um eine Datei hochzuladen oder ein fertiges Webformular zu übermitteln. Zum Beispiel sendet post()
eine POST
-Anforderung an eine bestimmte URL. Wir können es auch verwenden, wenn wir einige Daten an den Server senden müssen.
Wichtige Fakten zur Anfrage POST
- Es gibt keine Einschränkungen hinsichtlich der Datenlänge und wird nach Bedarf eingestellt.
- Es lebt nicht im Browserverlauf.
- Es wird nie zwischengespeichert.
- Es darf kein Lesezeichen sein.
Installation des Moduls requests
in Python
Das Modul requests
, das für die Verwendung der Methode post()
benötigt wird, kann mit folgendem Befehl installiert werden:
python -m pip install requests
ODER
pip install requests
Wir können den folgenden Befehl verwenden, wenn pipenv
Python-Pakete verwaltet.
pipenv install requests
Sobald das Modul Anfragen
installiert ist, kann es importiert und im Programm wie folgt verwendet werden:
import requests
Nun, wie verwendet man die Methode requests.post()
? Was ist die Syntax dafür? Lass es uns unten lernen.
Syntax:
requests.post(url, data={key: value}, json={key: value}, args)
Hier ist args
gleich 0
oder mehr der genannten Argumente als die folgenden Parameter:
Parameter | Beschreibung |
---|---|
url |
Die URL der Anfrage ist ein wichtiger Bestandteil. |
data |
Optional. Ein Wörterbuch, eine Liste von Tupeln, Bytes oder ein Dateiobjekt werden an die angegebene URL gesendet. |
json |
Optional. Ein JSON-Objekt zum Weiterleiten an die angegebene URL. |
files |
Optional. Ein Verzeichnis mit Dateien, die an die angegebene URL übergeben werden. |
allow_redirects |
Optional. Ein boolescher Wert zum Aktivieren oder Deaktivieren der Umleitung. Der Standardwert ist True , was bedeutet, dass Weiterleitungen erlaubt sind. |
auth |
Optional. Ein Tupel zum Aktivieren einer bestimmten HTTP-Authentifizierung. Der Standardwert ist Keine . |
cert |
Eine Zeichenfolge oder ein Tupel, das eine Cert-Datei oder einen Schlüssel angibt. Optional, wobei der Standardwert None ist. |
cookies |
Das an die angegebene URL zu sendende Cookie-Wörterbuch ist optional, und der Standardwert ist None . |
headers |
Optional, Standard None , ein Wörterbuch von HTTP-Headern, die an die definierte URL gesendet werden. |
proxies |
Optional, Standard None , ein Protokollwörterbuch zur Proxy-URL. |
stream |
Eine boolesche Angabe der Antwort, entweder False (heruntergeladen) oder True (gestreamt). Optional, Standard False . |
timeout |
Optional, eine Zahl, die die Zeit angibt, die gewartet wurde, bis der Client eine Verbindung hergestellt und/oder eine Antwort gesendet hat. Der Standardwert ist Keine . Dies bedeutet, dass die Anfrage fortgesetzt wird, bis die Verbindung geschlossen wird. |
verify |
Eine boolesche oder Zeichenfolgenangabe, um das TLS-Zertifikat des Servers zu überprüfen/nicht. Optional. Der Standardwert ist True . |
Anwendungen der post()
-Methode
Der folgende Codezaun demonstriert die Verwendung der post()
-Methode, bei der der Benutzer Daten über die post()
-Methode auf der httpbin-Website postet und eine Antwort darüber erhält, wie sie gepostet wurden.
import requests
values = {"username": "user", "password": "test"}
result = requests.post("https://httpbin.org/post", data=values)
print(result.text)
Ausgang:
Es wird ein Antwortobjekt
empfangen, das viele Informationen enthält. Zuerst das Formularobjekt
mit den Schlüsseln und Werten, wobei Benutzername
Benutzer
und Passwort
test
ist. Dann enthält das Header-Objekt
einige Eigenschaften: Next
, JSON
, origin
und URL
.
Um eine mehrteilig kodierte Datei zu posten, stellen Sie eine mehrteilige POST
-Anfrage, indem Sie eine Datei mit der Dateieigenschaft
der post()
-Methode an den Server senden.
import requests
files = {"file": open("test.txt", "rb")}
url = "https://httpbin.org/post"
result = requests.post(url, files=files)
print(result.text)
Ausgang:
Als Ausgabe wurde ein leeres Datenobjekt zurückgegeben und das Dateiobjekt erhalten, ein Dateiattribut, dessen Wert der Inhalt der Datei ist (der Inhalt der Datei test.txt
, die im Arbeitsverzeichnis Test Text
erstellt wurde).
Um POST
-Anfragen innerhalb einer Sitzung zu stellen, setzen Sie ein Cookie auf eine URL und stellen Sie dann erneut eine Anfrage, um zu prüfen, ob das Cookie gesetzt ist. Sitzungen sind auch hilfreich, wenn ein Benutzer dieselben Daten für alle Anforderungen senden muss. Zum Beispiel:
import requests
s = requests.Session()
s.cookies.update({"month-visit": "July"})
request01 = s.get("http://httpbin.org/cookies")
print(request01.text)
# outputs details on the "month-visit" cookie
request02 = s.get("http://httpbin.org/cookies", cookies={"year-visit": "2022"})
print(request02.text)
# outputs details on "month-visit" and "year-visit" cookie
request03 = s.get("http://httpbin.org/cookies")
print(request03.text)
# outputs details on the "month-visit" cookie
Ausgang:
Wie in der Ausgabe wird bei allen drei Anfragen das Session-Cookie month-visit
übergeben. Aber das year-visit
-Cookie wird nur bei der zweiten Anfrage weitergegeben.
In der dritten Anfrage gibt es kein year-visit
-Cookie. Daher wird bestätigt, dass die Cookies oder andere Datensätze, die bei einzelnen Anfragen gesetzt wurden, nicht mit anderen Sitzungsanfragen weitergegeben werden.
Wenn man die Vorteile der post()
-Methode betrachtet, ist sie sicherer als die GET
-Methode, da die vom Benutzer eingegebenen Informationen niemals in der URL-Abfragezeichenfolge oder in den Serverprotokollen sichtbar sind.
Es gibt eine viel größere Grenze für die Datenmenge, die wir senden können, und eine Person kann einen Text oder binäre Daten senden, z. B. das Hochladen einer Datei mit der POST
-Methode.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.
Verwandter Artikel - Python Requests
- Abfragezeichenfolge mit Parametern für Anfragen in Python
- Führen Sie einen API-Aufruf mit Token in Python durch
- Ignorieren Sie die Prüfung des SSL-Sicherheitszertifikats in Python-Anforderungen
- Legen Sie den Benutzeragenten mithilfe von Anforderungen in Python fest
- Maximale Wiederholungsversuche für Anfragen in Python festlegen
- Python fordert Paginierung an