我創建了一個簡單的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