如何使用python在本地显示带有html表单的网站并收集用户输入?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用python在本地显示带有html表单的网站并收集用户输入?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1893字,纯文字阅读大概需要3分钟。
内容图文
我是一名行为科学家,通常通过让参与者在计算机上执行某些任务并记录他们的响应来收集数据(我使用pyglet包装器PsychoPy编写程序).也就是说,程序在本地运行,数据存储在本地.
现在我想知道是否有办法使用Python向用户显示带有html表单的(本地)网站并收集输入(本地).这个想法的原因是,当我想要显示复选框,单选按钮或输入字段时,我使用wxPython.这很好用,但是wxPython中的编程和布局有点麻烦,我更喜欢带表单的html.
一个要求是它需要朗姆酒没有任何边框,地址字段,菜单栏,…原因是我需要它以某种全屏模式(我目前打开一个非全屏pygflet窗口的大小的屏幕以隐藏桌面),以便参与者除了处理表单之外什么都不做.
所以我正在寻找一种方法来(a)显示html网站,包括没有菜单栏的pyglet窗口上面的html表格,或者(b)点击Ok按钮收集输入(即表格发送),( c)控制在查看本网站之前和之后呈现的内容,以及(d)所有内容都应在本地进行!
我的想法是,当参与者点击以下示例pic中的“发送”按钮并显示下一页时,将收集数据.
更新:我使用Windows(XP或7).
解决方法:
这是使用Qt Webkit呈现HTML的解决方案.默认导航请求处理程序由检查提交的表单请求的函数包装.表单使用“get”方法,因此数据包含在请求的url中,并且可以通过该方式检索.原始请求被拒绝,您可以根据需要更改显示的网页的内容.
from PyQt4 import QtGui, QtWebKit
app = QtGui.QApplication([])
view = QtWebKit.QWebView()
# intercept form submits
class MyWebPage(QtWebKit.QWebPage):
def acceptNavigationRequest(self, frame, req, nav_type):
if nav_type == QtWebKit.QWebPage.NavigationTypeFormSubmitted:
text = "<br/>\n".join(["%s: %s" % pair for pair in req.url().queryItems()])
view.setHtml(text)
return False
else:
return super(MyWebPage, self).acceptNavigationRequest(frame, req, nav_type)
view.setPage(MyWebPage())
# setup the html form
html = """
<form action="" method="get">
Like it?
<input type="radio" name="like" value="yes"/> Yes
<input type="radio" name="like" value="no" /> No
<br/><input type="text" name="text" value="Hello" />
<input type="submit" name="submit" value="Send"/>
</form>
"""
view.setHtml(html)
# run the application
view.show()
app.exec_()
内容总结
以上是互联网集市为您收集整理的如何使用python在本地显示带有html表单的网站并收集用户输入?全部内容,希望文章能够帮你解决如何使用python在本地显示带有html表单的网站并收集用户输入?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。