Javascript HTML/JS作为本地SQLite数据库的接口
我正在编写一个非常简单的数据库应用程序,希望将其存储在本地(而不是查找远程数据库)。我喜欢用HTML/Javascript设计界面,而且它们是跨平台的(每个人都有一个浏览器!),所以我真的很想写一个网页作为前端。不应涉及客户机/服务器交互-我只希望用户能够使用浏览器而不是本机程序与数据库交互 然而,我能看到的从浏览器访问数据库的唯一方法是使用WebSQL或IndexedDB之类的东西。然而,这两种方法都将管理数据库文件本身的过程抽象出来,并将其存储在用户设置的某个地方。我想将数据库文件本身与应用程序一起分发 简而言之:有没有一种方法可以使用HTML/Javascript修改本地SQLite数据库文件?或者HTML不是我应该用于此类应用程序的工具Javascript HTML/JS作为本地SQLite数据库的接口,javascript,html,sqlite,web-sql,Javascript,Html,Sqlite,Web Sql,我正在编写一个非常简单的数据库应用程序,希望将其存储在本地(而不是查找远程数据库)。我喜欢用HTML/Javascript设计界面,而且它们是跨平台的(每个人都有一个浏览器!),所以我真的很想写一个网页作为前端。不应涉及客户机/服务器交互-我只希望用户能够使用浏览器而不是本机程序与数据库交互 然而,我能看到的从浏览器访问数据库的唯一方法是使用WebSQL或IndexedDB之类的东西。然而,这两种方法都将管理数据库文件本身的过程抽象出来,并将其存储在用户设置的某个地方。我想将数据库文件本身与应用
<>编辑:如果你真的想要一个客户端应用程序,你应该真正考虑使用HTML5技术(WebSQL,索引DB)。您需要将数据库导出到某个地方,或者让用户导出数据库,当用户重新加载页面时,数据库应该重新连接。示例:。这就是我最后所做的: 如前所述,您可以使用Python创建本地web服务器。本教程提供了服务器处理程序的基本基础结构。我不得不处理一些问题,可能是由Python 3或使用Chrome访问我的本地页面引起的 我的GET handler函数最终如下所示:
def do_GET(self):
尝试:
自我发送_响应(200)
self.send_标题('Content-type','text/html')
self.send_头('Access-Control-Allow-Origin','*'))
self.end_头()
尝试:
fn=GETHANDLERS[self.path[1:]
self.wfile.write(fn().encode(“utf-8”))
除KeyError外:
self.wfile.write(self.path.encode(“utf-8”))
返回
除:
self.send_错误(404,“找不到文件:{0}”。格式(self.path))
其中GETHANDLERS
是一个将URL映射到函数的字典-例如,如果您访问http://localhost/my_func
,调用GETHANDLERS['my_func']
函数。如果不存在URL的函数,则只回显URL
我使用sqlite3
模块实现了操作本地SQLite数据库的函数。下面是一个查询示例,用于列出Categories
表中的所有内容:
导入sqlite3
def get_categories():
con=sqlite3.connect('my.db')
c=con.cursor()
c、 执行(''从类别中选择*;'')
对于c.fetchall()中的cat返回[cat[0]
GETHANDLERS[“categories”]=获取类别
要使用本地应用程序,用户必须安装Python,然后在打开网页之前运行服务器脚本。我认为这是可以接受的 您可以使用sqlite3连接器并从HTA应用程序连接到本地数据库文件 这是连接器(必须按照页面上的说明注册dll)
检查zip文件中的HTA演示应用程序(DLL在\litex\bin文件夹中,HTA在脚本文件夹中…)Javascript无法写入本地文件。但是,您可以在第一次发送一个js文件来存储值。你有没有考虑过AdobeAIR,你可以在它上面使用HTML/JS进行开发,并且可以访问文件系统?以前没有太多关于AIR的内容,我会查一下。我希望尽可能减少依赖关系,但我不认为我能用纯HTML/JS做到这一点。我找到了很多关于如何导出数据库的文档,但是有没有从CSV导入的好方法?然后,例如,第一次加载应用程序时,我可以将所有数据从本地CSV导入浏览器的数据库。嗯,您可以尝试使用此解析器,但我建议您使用xml导出和导入数据库,因为这样更简单