我有一些JSON脚本,我计划在网站上解析,然后允许客户端通过我的界面编辑它们(稍后再次加载和解析以显示)。问题是,Javascript无权访问文件系统。我已经有了一个使用Javascript(和jQuery)读取JSON文件的系统。现在,我听说我可以使用CGI稍后保存数据。有人可以给我一些参考和深度解释吗?我已经阅读了一些关于CGI的内容,但没有具体说明。
感谢您的帮助!
答案 0 :(得分:1)
CGI是服务器与脚本交互的一种方式。实际上,您只需将服务器设置为执行文件,它将执行多个环境变量集并将POST数据提供给其标准输入。该脚本应输出页面的标题,然后输出内容。
CGI脚本可以用许多不同的语言编写。 Perl以CGI脚本而闻名;它上面有文档here。 Python有a cgi
module来处理CGI。 Ruby也有a CGI
package。
这是一个用Python编写的快速CGI脚本,可以写入文件。您可能希望修改它或将其用作参考,而不是按原样使用它:
#!/usr/bin/env python
import os
import os.path
import sys
import json
import cgi
# You'll probably want to remove or alter
# the following line for production.
import cgitb; cgitb.enable()
def bad_request():
print "Status: 400 Bad Request"
print "Content-Type: application/json"
print ""
json.dump({'success': False}, sys.stdout)
sys.exit(0)
assert 'REQUEST_METHOD' in os.environ
if os.environ['REQUEST_METHOD'] != 'POST':
bad_request()
form = cgi.FieldStorage()
if 'data' not in form:
bad_request()
filename = os.path.join(os.path.dirname(__file__), "some_file.json")
with open(filename, "wb") as f:
f.write(form['data'].value)
print "Content-Type: application/json"
print ""
json.dump({'success': True}, sys.stdout)
如果您使用POST
参数data
,则会将该数据保存到与自身相同的目录中的some_file.json
。