Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML/JS作为本地SQLite数据库的接口_Javascript_Html_Sqlite_Web Sql - Fatal编程技术网

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

Javascript HTML/JS作为本地SQLite数据库的接口,javascript,html,sqlite,web-sql,Javascript,Html,Sqlite,Web Sql,我正在编写一个非常简单的数据库应用程序,希望将其存储在本地(而不是查找远程数据库)。我喜欢用HTML/Javascript设计界面,而且它们是跨平台的(每个人都有一个浏览器!),所以我真的很想写一个网页作为前端。不应涉及客户机/服务器交互-我只希望用户能够使用浏览器而不是本机程序与数据库交互 然而,我能看到的从浏览器访问数据库的唯一方法是使用WebSQL或IndexedDB之类的东西。然而,这两种方法都将管理数据库文件本身的过程抽象出来,并将其存储在用户设置的某个地方。我想将数据库文件本身与应用

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

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

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


<>编辑:

如果你真的想要一个客户端应用程序,你应该真正考虑使用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导出和导入数据库,因为这样更简单