Как наиболее эффективно вводить данные с веб-страницы в скрипт Python - PullRequest
2 голосов
/ 15 ноября 2011

Как мне проще всего вводить данные с веб-страницы и передавать их в скрипт Python?

Я много читал здесь и на других форумах о Python в связи с php или cgi, или даже Tornado, Django и т. Д., Но я довольно озадачен тем, что является лучшим решением для меня.

У меня есть скрипт на Python, который извлекает данные из Интернета, генерирует HTML-страницы и т. Д. - при запуске есть только один

userIn=str(raw_input())

, который заставляет скрипт собирать данные на основе ввода в терминал. Теперь я хочу, чтобы этот вклад исходил из какого-то

<html>
<body>

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

</body>
</html> 

В файле test.php я пытался передать значение в любом виде (proc_open, exec ...), но я не вижу связи между python и этой формой, кроме того, я не уверен, что это лучшая идея передать вывод Python (некоторые ошибки отладки и т. д.) обратно в веб-интерфейс?!

Большое спасибо!

Ответы [ 3 ]

2 голосов
/ 17 ноября 2011

Теперь мне это удалось с помощью команды exec ().

<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);
?>
0 голосов
/ 15 ноября 2011

Чтобы получить значение из формы, вы можете изменить action="test.php" на action="/where_you_hooked_your_webapp".

Код приложения может быть:

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)

Чтобы узнать, как его развернуть, см. Быстрый запуск Flask Например, Apache с mod_wsgi .

0 голосов
/ 15 ноября 2011

Используйте для этого функцию php passthru ().

...