我试图做一个简单的网页,从SQLite文件中读取数据,并在网页中显示它,这是非常简单的,我想做3 SQL查询和显示结果。
我有主意使用布莱顿,因为让Django/烧瓶应用程序看起来更容易,
这是我的密码:
<html>
<head>
<script src="/brython.js"></script>
</head>
<body onload="brython('debug_mode')"> <!-- for debug --!>
<script type="text/python">
from browser import document, alert
from browser import html
def echo(ev):
alert(document["zone"].value)
document['mybutton'].bind('click',echo)
document['text'] <= html.P("testing")
document['text'] <= html.P("testing 222")
# get holidays for today
import sqlite3
import sys
sqlite3_connection = sqlite3.connect('test.db')
with sqlite3_connection:
sqlite3_cursor = sqlite3_connection.cursor()
sqlite3_cursor.execute('SELECT SQLITE_VERSION()')
data = sqlite3_cursor.fetchone()
document['text'] <= html.P("SQLite version: %s" % data)
</script>
<input id="zone"><button id="mybutton">click !</button>
<div id="text">
</div>
</body>
</html>这是不起作用的,问题是默认情况下,Brython没有sqlite3实现。
有什么简单的方法将sqlite3添加到Brython ?中吗?
我已经看到了一些谷歌代码之夏项目,但在任何地方都没有找到结果。
发布于 2015-03-16 13:02:34
正如Martijn明确指出的,他评论说--你想要做的事情要比使用一个最低限度的Python应用程序来服务你的数据要困难得多: Brython是一种客户端脚本语言,虽然它与Python非常接近,而且越来越好,但它仍然是客户端的。
数据库中的数据,无论是sqlite还是其他数据,都位于服务器端--因此,至少您必须设置一个webservice,以便在需要时完成数据库查询。
即使您想要一个“本地”应用程序taht只使用浏览器进行UI,cleint端brython也无法访问文件系统来读取数据库文件。(如果brython确实实现了sqlite3模块,正如您所检查的,它没有实现)。
无论如何,使用Brython编写代码需要让Python代码程序使用DOM实时更新页面,这通常比在Flask或其他微框架中具有静态视图要复杂得多,后者将生成DB查询并呈现模板。此外,Brython没有标准的框架(或者“非标准的”框架),这些框架都不能帮助模板页面和完成成熟框架所具有的其他精细功能--即使您拥有完整的Python3字符串格式,模板中也存在逻辑分离和流控制,您必须重新创建这些框架。
因此,提示是:选择一个好的酒瓶/web2py/瓶教程,然后开始。当你认为你有一个好的静态网络应用,添加Brython使其动态。
发布于 2015-03-15 15:24:51
经过更多的研究和电子邮件给比利·厄尼。比尔是布赖顿的幕后黑手。
sqlite3目前还没有添加到not thon.中。
他的答复:
我们没有接受2014年的GSOC,因此SQLite3还没有移植到Brython。它仍然在我们要做的事情的清单上。
https://stackoverflow.com/questions/29060377
复制相似问题