我正在使用Backbone.js构建一些简单的编辑器,我希望能够将它们作为应用程序分发给用户以主要以客户端方式编辑内容(即,我不希望用户不得不设置像MySQL或Apache这样的东西。
所以我想象一个场景:
localStorage
信不信由你,这将解决我的问题:我想帮助用户在浏览器中编辑数据,然后以熟悉的格式将其恢复(例如,CSV可以加载到Excel中)。
我想在不强制他们配置服务器的情况下这样做。看起来这在HTML5堆栈中几乎是可能的。但是,在至少一个浏览器(Chrome)中,这不起作用,因为我收到类似这样的错误:
XMLHttpRequest cannot load file:///users/me/project/data/Appdata.json. Origin null is not allowed by Access-Control-Allow-Origin.
(奇怪的是,我在Firefox中没有收到该错误,并且.js
或.json
文件加载正常。)
所以在这一点上,在我看来,没有办法让这些用户使用某种本地服务器来提供Backbone接口。
所以,我正在试图弄清楚如何构建一个可分发的跨平台可执行文件,允许我的用户启动Flask服务器。 (我希望为Backbone.js应用程序构建一个REST后端。)
这是一厢情愿的想法吗?我假设我可以让相关人员安装Python。这可行吗?似乎有很多方法可以打包Python程序,(pyinstaller?py2exe?...)所以我想我会问这里以防有人知道我想到的堆栈的解决方案。
TIA!
答案 0 :(得分:2)
我的建议是在代码周围创建一个瘦服务包装器。这将允许服务器独立于主代码库运行 - 也允许用户直接关闭服务器(只需右键单击服务图标并选择“退出”)。
This SO answer应该可以帮助您入门。
在阅读更新后的问题后,我认为mongoose之类的内容可能更适合您的任务。它是一个可嵌入的Web服务器,它是FLOSS并具有python绑定。烧瓶可能有点矫枉过正。
答案 1 :(得分:2)
您可以使用Anthony Gordon McMillan’s Pyinstaller或Tuininga’s cx_Freeze
引用PyInstaller网站:
功能
将Python程序打包成可用的标准可执行文件 未安装Python的计算机。
多平台:在
下工作
- Windows(32位和64位),
- Linux(32位和64位),
- Mac OS X(仅限32位,git为64位,请参阅功能/ MacOs兼容性)和 实验性的Solaris和AIX(在git中)。
Multiversion:适用于从2.2到2.7的任何Python版本。
答案 2 :(得分:1)