我创建了一个简单的python项目,它提供了几个页面。我正在使用'webapp'框架和django。我想要做的是使用一个模板文件,并加载包含实际页面文本的“内容文件”。使用python在GAE中读取文件
当我尝试使用os.open内容文件的读取,我得到以下错误: pageContent = os.open(PAGEURL, 'R')阅读() OSERROR:[错误1]不允许操作:'content_includes/home.inc'error
如果我让django模板系统为我读取同一个文件,一切正常!
所以问题是我做错了什么,Django不是?使用相同的'pageUrl'。
下面的代码会给我错误,而如果我注释掉第一个pageContent赋值,一切正常。
代码:
pageName = "home"; pageUrl = os.path.join(os.path.normpath('content_includes'), pageName + '.inc') pageContent = os.open(pageUrl, 'r').read() pageContent=template.render(pageUrl, template_values, debug=True); template_values = { 'page': pageContent, 'test': "testing my app" }
错误:
Traceback (most recent call last): File "/opt/apis/google_appengine/google/appengine/ext/webapp/__init__.py", line 511, in __call__ handler.get(*groups) File "/home/odessit/Development/Python/Alpha/main.py", line 19, in get pageContent = os.open(pageUrl, 'r').read() File "/opt/apis/google_appengine/google/appengine/tools/dev_appserver.py", line 805, in FakeOpen raise OSError(errno.EPERM, "Operation not permitted", filename) OSError: [Errno 1] Operation not permitted: 'content_includes/home.inc'
的app.yaml:
handlers: - url: /javascript static_dir: javascript - url: /images static_dir: images - url: /portfolio static_dir: portfolio - url: /.* script: main.py
btw,template_values已在pageName赋值之前声明 – Vladimir 2010-10-17 22:27:37
这是您的实际代码?因为您在尝试读取变量时正在为您的变量分配渲染模板,并且您有一个以分号结束的行。 – geoffspear 2010-10-17 23:17:59
两件事:1.它不是我的实际代码,它是它的一个片段(我剪掉了一堆东西,并用其他东西代替它们),对于template_values,它在pageName上面声明,因为我没有在第一次渲染期间需要做任何替换,第二次渲染正好在template_values声明的下面。 2.我喜欢分号 - 我是一名Java开发人员:) – Vladimir 2010-10-19 00:14:47