0

我正在尝试制作简单的网页,该网页将从 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 ?

我已经看到有一些谷歌夏天的代码项目,但在任何地方都没有找到结果。

4

2 回答 2

1

正如 Martijn 明确指出的那样,他的评论 - 你想要做的事情比拥有一个最小的 Python 应用程序来提供数据要困难得多:Brython 旨在作为一种客户端脚本语言 - 尽管它与 Python 惊人地接近并且得到一天比一天好,它仍然是客户端。

您的数据库上的数据,无论是 sqlite 还是其他任何数据,都位于服务器端 - 所以至少您必须设置一个 web 服务来根据需要执行数据库查询。

即使您想要一个“本地”应用程序只使用浏览器作为 UI,客户端 brython 也无法访问文件系统来读取数据库文件。(如果 brython 确实实现了 sqlite3 Python 模块,正如您检查的那样,它没有)。

无论如何,在 Brython 中编码将需要您实际上有 Python 代码程序来使用 DOM 实时更新页面,这通常比在 Flask 或其他微框架中简单地拥有一个静态视图更复杂,这将进行数据库查询和渲染一个模板。此外,Brython 没有标准(或目前也没有“非标准”)框架来帮助模板化页面和做成熟框架所拥有的其他细节——即使你有完整的 Python3 字符串格式,也有逻辑分离和流控制您必须重新发明的模板。

所以提示是:只需在某个地方选择一个不错的 flask/web2py/bottle 教程,然后开始吧。当你认为你有一个好的静态 Web 应用程序时,添加 Brython 以使其动态化。

于 2015-03-16T13:02:34.830 回答
0

经过更多的研究和电子邮件比利厄尼。比尔是 Brython 背后的人。

目前 Brython 中没有添加 sqlite3。

他的回应:

我们没有被 GSOC 2014 接受,因此 SQLite3 尚未移植到 Brython。它仍然在我们要做的事情清单上。

于 2015-03-15T15:24:51.713 回答