HTML/JS作为本地SQLite数据库的接口

Dan*_*ter 6 html javascript sqlite web-sql

我正在编写一个非常简单的数据库应用程序,我想在本地存储(而不是查找远程数据库).我喜欢用于设计界面的HTML/Javascript,而且它们是跨平台的(每个人都有浏览器!),所以我真的想把网页写成前端.不应涉及客户端/服务器交互 - 我只希望用户能够使用浏览器而不是本机程序与数据库进行交互.

但是,我可以看到从浏览器访问数据库的唯一方法是使用WebSQL或IndexedDB之类的东西.但是,这两者都抽象出了管理数据库文件本身的过程,并将其存储在某个用户设置中.我想将数据库文件本身与应用程序一起分发.

简而言之:有没有办法使用HTML/Javascript来修改本地SQLite数据库文件?或者HTML不是我应该用于此类应用程序的工具?

编辑: 可能相关

Dan*_*ter 4

这就是我最终所做的:

正如此处所述,您可以使用 Python 创建本地 Web 服务器。教程提供了服务器处理程序的基本基础结构。我必须处理一些问题,可能是由 Python 3 或使用 Chrome 访问我的本地页面引起的。

我的 GET 处理函数最终看起来像这样:

def do_GET(self):
    try:
        self.send_response(200)
        self.send_header('Content-type', 'text/html')
        self.send_header('Access-Control-Allow-Origin', '*')
        self.end_headers()
        try:
            fn = GETHANDLERS[self.path[1:]]
            self.wfile.write(fn().encode("utf-8"))
        except KeyError:
            self.wfile.write(self.path.encode("utf-8"))
        return
    except:
        self.send_error(404, 'File Not Found: {0}'.format(self.path))
Run Code Online (Sandbox Code Playgroud)

其中GETHANDLERS是一个将 URL 映射到函数的字典 - 例如,如果您访问http://localhost/my_funcGETHANDLERS['my_func']则会调用该函数。如果该 URL 不存在任何函数,则仅回显该 URL。

我已经实现了使用该模块操作本地 SQLite 数据库的函数sqlite3。以下是列出表中所有内容的查询示例Categories

import sqlite3

def get_categories():
    con = sqlite3.connect('my.db')
    c = con.cursor()
    c.execute('''SELECT * FROM Categories;''')
    return [cat[0] for cat in c.fetchall()]

GETHANDLERS["categories"] = get_categories
Run Code Online (Sandbox Code Playgroud)

要使用本地应用程序,用户需要安装Python,然后在打开网页之前运行服务器脚本。我觉得这个还是比较可以接受的!