我正在尝试创建简单的网页,它将从SQLite文件中读取数据并在网页中显示,很简单,我想做3个SQL查询并显示结果。
我有意使用Brython,因为制作Django / Flask应用程序看起来更容易,
这是我的代码:
<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中?
我已经看到有一些Google summer of Code项目,但在任何地方都找不到结果。
答案 0 :(得分:1)
正如Martijn在评论中明确指出的那样 - 您要做的事情要比使用最小的Python应用程序来提供数据要困难得多: Brython旨在作为一种客户端脚本语言 - 尽管它令人惊讶地接近Python并且日渐变得更好,它仍然是客户端。
数据库上的数据,无论是sqlite还是其他任何数据,都在服务器端 - 因此,至少您必须设置Web服务以根据需要执行数据库查询。
即使你想要一个&#34;本地&#34;应用程序taht只是使用浏览器的UI,cleint side brython无法访问文件系统以读取数据库文件。 (如果brython完全实现了sqlite3 Python模块,如你所检查的那样,它没有)。
无论如何,在Brython中进行编码会要求你实际上有Python代码程序来使用DOM实时更新页面,这通常比在Flask或其他微框架中只有静态视图更复杂,这将使数据库查询并呈现模板。 此外,Brython没有标准(或者没有标准的#34;非标准&#34;)框架可以帮助模板化页面并做其他成熟框架所具有的细节 - 即使你有完整的Python3字符串格式,也有逻辑模板中的分离和流量控制,您必须重新发明。
所以提示是:只需在某处选择一个漂亮的烧瓶/ web2py /瓶教程,然后开始。如果您认为自己有一个好的静态Web应用程序,请添加Brython以使其具有动态性。
答案 1 :(得分:0)
经过更多研究和发送给Billy Earney的电子邮件。 Bill是Brython背后的人。
目前没有在Brython中添加sqlite3。
他的回应:
我们没有被GSOC 2014接受,因此SQLite3还没有被移植到Brython。它仍然在我们要做的事情清单上。