3 Stimmen

Wie man Daten von einer Webseite möglichst effizient in ein Python-Skript eingibt

Wie kann ich am einfachsten Daten von einer Webseite eingeben und sie an ein Python-Skript übergeben?

Ich habe hier und in anderen Foren viel über Python in Verbindung mit php oder cgi, oder sogar Tornado, Django, etc. gelesen, aber ich bin ziemlich verwirrt, was die beste Lösung für mich ist.

Ich habe ein Python-Skript, das Daten aus dem Web abruft, generiert .html-Seiten usw. - wenn es ausgeführt wird, gibt es nur eine

userIn=str(raw_input())

die das Skript veranlasst, Daten auf der Grundlage der Eingaben im Terminal zu sammeln. Ich möchte nun, dass diese Eingaben nur von einer Art von

<html>
<body>

<form action="test.php" method="get">
Name <input type="text" name="name" />
<input type="submit" />
</form>

</body>
</html> 

In der Datei test.php habe ich versucht, den Wert in jeder Art (proc_open, exec ...) zu übergeben, aber ich scheine nicht, um die Verbindung zwischen Python und dieses Formular zu erhalten, obendrein bin ich nicht sicher, was ist die beste Idee, Python-Ausgabe (einige Debugging-Fehler etc.) zurück an die Web-Schnittstelle zu übergeben?

Herzlichen Dank!

3voto

birgit Punkte 1091

Ich habe es jetzt mit dem Befehl exec() geschafft.

<html>
<body>

<form action="test.php" method="get">
<input type="text" name="name" />
<input type="submit" />
</form>

</body>
</html> 

test.php:

<?php
exec("python mypythonscript.py ".$name, $output);
?>

1voto

jfs Punkte 370717

Um einen Wert aus dem Formular zu erhalten, könnten Sie Folgendes ändern action="test.php" a action="/where_you_hooked_your_webapp" .

Der Code der Anwendung könnte lauten:

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def handle_input():
    userIn = request.args.get('name', 'default name goes here')
    # grab data from the web, prepare data for html template, etc
    return render_template('user.html', user=userIn, data=data)

Wie Sie es einsetzen können, erfahren Sie unter Flask-Schnellstart z.B., Apache mit mod_wsgi .

0voto

mnain Punkte 46

Verwenden Sie dazu die Funktion php passthru().

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X