你的问题表明对如何进行一些误解网络应用程序 http://en.wikipedia.org/wiki/Web_application work.
用户必须在浏览器中输入地址才能访问该应用程序。这会向服务器发送请求。服务器代码(用 python 编写)接收此请求并有机会发送答案。答案是通常写成的文档HTML http://www.w3.org/html/。本文档的某些部分可以是动态的,即由 python 代码生成。文档的其他部分可以是静态的。然后浏览器在用户窗口上呈现该文档。
之后,Python 代码了解浏览器窗口上发生的情况或运行 Python 代码的任何部分的唯一方法是让浏览器发送另一个请求。
这种情况在很多情况下都可能发生,最常见的是:
- 用户点击另一个链接
url,让浏览器发送另一个
请求这个新的 url。
- 用户点击
submit
按钮, 制作
浏览器将表单作为请求提交
到配置的地址
形式action
属性。
- 实际页面中的一些代码,通常写成ECMA脚本 http://www.ecmascript.org/(也称为javascript),在后台发出请求。
后者就是你想要的。您必须写在javascript一些代码使浏览器将下拉列表中选择的信息发送到服务器。这样你在服务器上的 python 代码就可以做一些事情。
做到这一点的简单方法是使onchange
下拉事件进行提交:
<select name='myfield' onchange='this.form.submit()'>
<option .... >
...
</select>
</form>
这样,当用户更改下拉列表中的值时,表单将被提交,就像用户单击“提交”一样。服务器上的 Python 代码将运行。浏览器将加载答案。
另一种流行的方法是使用 javascriptXmlHTTP请求 http://en.wikipedia.org/wiki/XMLHttpRequest用于发送请求的 DOM API。这样你就可以在 python 中接收值并发送答案,而浏览器中的 javascript 代码又会接收到答案。该代码可以根据答案更改页面的部分内容,而无需更改整个页面。这种技术称为AJAX http://en.wikipedia.org/wiki/Ajax_(programming).
如果您计划编写大量 javascript 代码,我强烈建议使用 javascript 库,至少可以减轻处理许多浏览器版本的痛苦。jQuery http://jquery.com/是我选择的图书馆。
换句话说,用 javascript 编写的代码在浏览器中运行talks到服务器中运行的用Python编写的代码。