Ваш вопрос свидетельствует о некотором непонимании того, как работают веб-приложения.
Пользователь должен ввести адрес в браузере, чтобы получить доступ к приложению. Это отправляет запрос на сервер. Код сервера (написанный на питоне) получает этот запрос и имеет возможность отправить ответ. Ответ представляет собой документ, обычно написанный на HTML. Некоторые части этого документа могут быть динамическими, т.е. генерироваться кодом Python. Другие части документа могут быть статическими. Затем браузер отображает документ в окне пользователя.
После этого единственный способ, которым ваш код Python может узнать о том, что происходит в окне браузера, или запустить какую-либо часть кода Python, — заставить браузер отправить еще один запрос.
Это может произойти во многих ситуациях, наиболее распространенными из которых являются:
- Пользователь нажимает ссылку на другой URL-адрес, в результате чего браузер отправляет еще один запрос на этот новый URL-адрес.
- Пользователь нажимает кнопку
submit, и браузер отправляет форму как запрос на адрес, указанный в атрибуте формы action.
- Некоторый код на реальной странице, обычно написанный на ECMAscript (также известном как javascript) , делает запрос под капотом.
Последнее - это то, что вы хотите. Вы должны написать в javascript некоторый код, чтобы браузер отправлял информацию, выбранную в раскрывающемся списке, на сервер. Таким образом, ваш код Python на сервере может что-то с этим сделать.
Самый простой способ сделать это — заставить событие onchange раскрывающегося списка выполнить отправку:
<select name='myfield' onchange='this.form.submit()'>
<option .... >
...
</select>
</form>
Таким образом, когда пользователь изменит значение в раскрывающемся списке, форма будет отправлена, как если бы пользователь нажал кнопку «Отправить». Код Python на сервере будет работать. Браузер загрузит ответ.
Другим популярным способом является использование DOM API XmlHTTPRequest javascript для отправки запроса. Таким образом, вы можете получить значение в python и отправить ответ, который, в свою очередь, будет получен кодом javascript в браузере. Этот код может изменять части страницы в зависимости от ответа, не изменяя всю страницу. Этот метод называется AJAX.
Если вы планируете писать много кода javascript, я настоятельно рекомендую использовать библиотеку javascript, по крайней мере, чтобы облегчить работу со многими версиями браузера. jQuery — моя любимая библиотека.
Другими словами, код, написанный на javascript и работающий в браузере, разговаривает с кодом, написанным на python, работающем на сервере.
person
nosklo
schedule
07.01.2009