我在我的Google appengine中有一個頁面,需要根據通過頁面URL提供的參數從數據存儲中獲取記錄。該頁面的URL看起來像http://example.appspot.com/page/WILDCARD/,其中WILDCARD是記錄的唯一標識符(32個字符的十六進制字符串)。然後它會記錄WILDCARD指定的記錄並將其顯示在模板page.html
上,或者至少這是它應該執行的操作。無論何時我以http://example.appspot.com/page/WILDCARD/的身份訪問該頁面,都會收到404錯誤。有誰知道爲什麼/有誰可以提出爲什麼這可能是原因?謝謝。Appengine通配符URL問題
在我WSGI類處理程序,我有
('/page/([^/]+)/', PageHandler),
和PageHandler
類本身就是
class PageHandler(webapp2.RequestHandler):
def get(self, recordID):
allrecords = db.GqlQuery("SELECT RECORD FROM RECORDS WHERE recordid = :record",record = recordID)
if not allrecords:
self.redirect("../") #the URL is screwed up, so we're redirecting you back to the main page
else:
for row in allrecords:
template = JINJA.get_template("page.html")
self.response.out.write(template.render({ "recordtext":row.RECORD, "recordid":recordID }))
其他細節:JINJA
只是默認神社的環境,我敢肯定,沒有什麼那是錯的。 RECORDS
是一個db.Model
類型類,它具有成員RECORD
(文本屬性)和recordid
(字符串屬性)。目前尚未填充任何數據。
編輯:沒關係,我解決了這個問題。當我簡化問題時,這是我自己的愚蠢。事實證明,在實際實施中(即這個例子的複雜版本),我認爲我的網址和它實際用於/ page /之間的差異很小。道歉。
你可以鏈接你的app.yaml嗎?我認爲重定向可能根本就不會在那裏正確地進行。 – Patrice 2014-08-29 17:25:53
我的app.yaml從這個簡單的例子非常不同,但唯一的線在我的YAML配置相關與這個頁面的處理程序是: - 網址:* 腳本:main.app 安全:總是 – user3059347 2014-08-29 18:37:48