Python in HTML ausführen

Vaibhav Vaibhav 10 Oktober 2023
  1. Ausführen von Python-Skripten in HTML mit PHP
  2. Python-Skript in HTML mit Django ausführen
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 der core-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 namens my_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, ist my_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 Modul my_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.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.