Brython与sqlite3

时间:2015-03-15 12:04:02

标签: python sqlite brython

我正在尝试创建简单的网页,它将从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项目,但在任何地方都找不到结果。

2 个答案:

答案 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。它仍然在我们要做的事情清单上。