Python in HTML ausführen
Webentwicklung ist ein weites Feld, und es gibt endlose Möglichkeiten und Dinge, die wir tun können. Mit Komplexität und Anspruch kommen Anforderungen. Beim Erstellen dynamischer Webseiten müssen wir oft Aufgaben ausführen, die die Unterstützung einer Programmiersprache wie Python oder PHP erfordern. In diesem Artikel erfahren Sie, wie Sie ein Python-Skript in HTML ausführen. Wir werden über einige Möglichkeiten sprechen, wie wir dies erreichen können.
Ausführen von Python-Skripten in HTML mit PHP
Wir können PHP
oder Hypertext Preprocessor
verwenden, um Python-Skripte in HTML auszuführen. Siehe folgenden Code zeigt ein einfaches Beispiel.
HTML-Datei - index.html
<html>
<head>
<title>Running a Python script</title>
<?PHP
echo shell_exec("python script.py");
?>
</head>
<body>
<!-- BODY -->
</body>
</html>
Python-Datei - script.py
a = 2000
b = 21
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")
Dadurch wird Folgendes in der Konsole gedruckt.
a = 2000
b = 21
a + b = 2021
Wenn wir einige Werte an die Python-Skripte übergeben möchten, können wir den folgenden Code verwenden.
HTML-Datei - index.html
<html>
<head>
<title>Running a Python script</title>
<?PHP
echo shell_exec("python script.py \"Parameter #1\" \"Parameter #2\"");
?>
</head>
<body>
<!-- BODY -->
</body>
</html>
Das Python-Skript sieht nun wie folgt aus.
Python-Datei - script.py
import sys
a = sys.argv[1]
b = sys.argv[2]
print(f"a = {a}")
print(f"b = {b}")
print(f"a + b = {a + b}")
Die Ausgabe bleibt gleich, wie oben gezeigt.
Python-Skript in HTML mit Django ausführen
Django ist ein berühmtes und robustes Python-basiertes Webentwicklungs-Framework. Da es Python-basiert ist, erleichtert es die Ausführung von Python-Skripten innerhalb des HTML-Codes. Dafür verwenden wir Template-Tags. Django hat einige vorgefertigte Template-Tags wie date
, linebreaks
, safe
, random
, etc. Sie können hier mehr darüber erfahren.
Da Django sehr anpassbar ist, bietet es Entwicklern eine einfache Möglichkeit, ihre benutzerdefinierten Vorlagen-Tags zu erstellen. Mithilfe von Vorlagen-Tags können wir Daten an HTML-Vorlagen zurückgeben, die in die HTML-Vorlage eingebettet werden können.
Führen Sie die folgenden Schritte aus, um ein einfaches Vorlagen-Tag zu erstellen. Wir gehen davon aus, dass wir in unserem Django-Projekt eine core
haben.
-
Erstellen Sie ein neues Verzeichnis,
templatetags
, innerhalb dercore
-Anwendung. Das App-Verzeichnis sollte in etwa so aussehen.core/ __init__.py models.py admin.py views.py urls.py ... templatetags/ __init__.py ...
-
Erstellen Sie im Ordner
templatetags
eine Python-Datei namensmy_custom_tags.py
. -
Fügen Sie in dieser Datei den folgenden Code hinzu.
from django import template register = template.Library() @register.simple_tag def my_tag(): return "Hello World from my_tag() custom template tag."
Das Modul
my_custom_tags.py
enthält alle benutzerdefinierten Vorlagen-Tags. Wie im obigen Code gezeigt, istmy_tag
ein benutzerdefiniertes Template-Tag, das wir gerade erstellt haben und jetzt in jedem HTML-Template verwendet werden kann. Dieses Template-Tag gibt"Hello World from my_tag() custom template tag."
diesen String an das Template zurück. Wir können hier noch mehr Vorlagen-Tags erstellen, um spezifische und allgemeine Aufgaben auszuführen. -
Nachdem wir nun unser erstes Template-Tag erstellt haben, ist es an der Zeit, es in unser HTML-Template zu laden und zu verwenden.
{% load static %} {% load my_custom_tags %} <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <title>Intro</title> </head> <body> <p>{% my_tag %}</p> </body> </html>
Wir laden zuerst das Modul
my_custom_tags.py
in das Template. Sobald das Modul geladen ist, können wir nun die im Modulmy_custom_tags
definierten Template-Tags verwenden. Beachten Sie, dass es wichtig ist, zuerst ein Modul mit benutzerdefinierten Vorlagen-Tags zu laden, bevor Sie diese Vorlagen-Tags verwenden.
Anstatt ein Vorlagen-Tag zu verwenden, können wir auch einen Endpunkt erstellen und eine AJAX-Anfrage an diesen Endpunkt senden, um eine Aufgabe auszuführen oder Daten abzurufen. Wir können fetch()
oder jquery
oder jede andere verfügbare Methode verwenden, um eine AJAX-Anfrage zu stellen. Beim Erstellen eines Endpunkts für die Verarbeitung einer AJAX-Anforderung ist es wichtig, sicherzustellen, dass der Endpunkt sicher ist und keinen einfachen Zugriff auf vertrauliche Daten oder Websitefunktionen ermöglicht. Da jeder AJAX-Anfragen stellen kann, wenn er den Endpunkt kennt, können wir die CSRF-Validierung (Cross Site Request Forgery
) hinzufügen und so konfigurieren, dass nur POST-Anfragen verarbeitet werden. Die POST-Daten sollten das CSRF-Token enthalten.
Sie können mehr über CSRF oder Cross Site Request Forgery Schutz hier erfahren.