【发布时间】:2019-06-10 17:48:32
【问题描述】:
我正在使用 CEF 迈出第一步。我知道一些 Python,所以我正在使用 CEFPython。我正在制作一个简单的应用程序,使用 Python 处理来自本地数据库的一些数据,然后将这些数据写入 JSON 文件。目标是最终使用 HTML、JS 和 CSS 很好地显示 JSON 数据。
我开始修改 Github 存储库中的 tutorial.py 文件。首先,我将 HTML 代码放在一个变量中,然后我是这样读取的:
HTML_code = open("test.html", "r").read()
然后我创建一个浏览器:
browser = cef.CreateBrowserSync(url=html_to_data_uri(HTML_code),
settings = browser_settings)
现在,在 HTML 的标题中,我这样调用 JSON 文件:
<script src="test.json"></script>
我可以在 Chrome 上完美呈现网站以及 JSON 文件。但是使用 CEFPython,我无法以这种方式加载 JSON 文件。我猜可能存在一些 CORS 问题。
我尝试修改浏览器和 cef.Initialize 设置,如this 回答中的建议。但这些变化似乎没有任何效果。这就是我尝试设置它们的方式:
switches = {
"disable-web-security": ""
}
browser_settings = {
"file_access_from_file_urls_allowed": "",
"universal_access_from_file_urls_allowed": "",
"web_security_disabled": ""
}
cef.Initialize(settings=settings, switches=switches)
set_global_handler()
HTML_code = open("test.html", "r").read()
browser = cef.CreateBrowserSync(url=html_to_data_uri(HTML_code),
settings = browser_settings)
所有文件(python 脚本、HTML 和 JSON)都在同一个文件夹中。我正在使用该文件夹上终端中的“python test.py”来运行它。我不想使用完整路径来调用文件,因为该程序将被其他不具有相同路径的人使用。
如何正确加载 JSON 文件?
【问题讨论】:
标签: python html json chromium-embedded cefpython