Ausführen von Python-code aus einer HTML-form
Mache ich ein web-server mit webpy und nun habe ich eine einfache form und eine spezielle Klasse, die ich geschrieben habe. Ich möchte die Benutzer in der Lage sein zu schreiben im code, um die form und wenn die Eingabe eine Funktion aufrufen, um die Funktion aufzurufen, die Nutzer eingereicht, die sonst nichts mit dem input wenn es nicht ein Aufruf der Funktion. Ich glaube, das hätte erreicht werden irgendwo in der template-Datei? jede Hilfe zu schätzen wissen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich das richtig verstanden, du suchst eine Möglichkeit zum ausführen von client-übermittelten code auf dem server, abrufen von Eingaben aus einem Formular.
So vorausgesetzt, Sie haben eine Formular-Vorlage, die sieht ungefähr so aus (Hinweis: der name der textarea-element):
werden Sie wollen, fügen Sie eine POST-Methode, um Ihre Seite Klasse, die die Eingaben verarbeiten und den code ausführen:
Dies ist nicht etwas, was Sie tun sollten, mit einer form, die zugänglich ist, um jemanden, den Sie nicht ganz Vertrauen, da es die Fähigkeit zum ausführen von beliebigen code, den Sie möchten auf Ihren web-server (z.B. könnten Sie einfach versuchen, und löschen Sie alle Dateien auf dem server). Aber wenn Sie ok sind, mit den Sicherheits-Risiken oder nur Herumspielen, Lesen Sie die Dokumentation für Pythons eval zu sehen, die andere Argumente übergeben werden können.
my_form = web.form.Form(web.form.Textbox('code',class_='code',id='code')
und in der Vorlage:<form class="form" method="POST"> $:form.render() <input class="button" type="submit" value="send"/> </form>
den ersten parameter des web.form Ziel sollte sein, die Formen Namen, aber wenn ich Anrufe, Daten.code, den ich bekommen ein Attribut-Fehler : codeErstellen Sie ein Python-cgi-Skript und führen Sie es im cgi-bin Verzeichnis Ihres Webservers. Hier ist ein tutorial. Dann kann das Skript das Formular aufrufen, input-und tun, was Sie will.