好的,不是有史以来最好的头衔。为了更好地解释它,让我将其分为三个部分:
I)如果我想要的数据是以我发送到实际路线的形式,我可以使用request.forms.get(),例如:
@route('/login')
def login():
return '''
<form action="/login1" method="post">
<input name="course" type="text"/>
<input value="Click!" type="submit"/>
</form>
@route('/login1')
def add_course():
course = request.forms.get('course')
II)编写模板时,我可以将数据从python传递给html:
% k = ['a', '1', 'b']
<h1> {{k}} </h1>
III)我的问题是:可能无法从html到python获取即时数据,因为模板是“编译的”(当然不是描述它的最佳方式,对不起)以及在浏览器中生成的html甚至不知道python做了什么(在最终的源代码中只有html编码)。那么,还有其他方法吗?基本上我想做的是一个'动态的一个URL站点',而不需要从../login交换到../login1。类似的东西:
<body>
<input type="text" id="course">
% if input == 'Yes':
[do something]
</body>
基本上jquery会做什么。
答案 0 :(得分:0)
您可以使用WSGIServer + Bottle创建可实现此目的的WebSocket服务器。由于Bottle被挂钩到WSGIServer(在这种情况下),他们正在协同工作以传递静态HTML文件以及传递事件周围的事件,实时数据从Python传递到HTML /模板页面,反之亦然好。你可以在这里看到这样做的一个例子:
https://github.com/jameswomack/CirroSockets
您可以在客户端侦听事件,并从Python代码中触发事件,反之亦然。您可以在以下页面中查看有关如何实现此目标的更多信息:
https://pypi.python.org/pypi/gevent-websocket/ https://developer.mozilla.org/en-US/docs/WebSockets/Writing_WebSocket_client_applications