构建一种维基。在下面的函数中,我正在检查页面是否已经存在。如果不是,则应重定向到编辑页面。但它会无限重定向,直到浏览器停止它。"_edit"处理程序还什么都不做...
def get(self, pageName):
p = db.GqlQuery("SELECT * FROM Pages")
pages = p.run(batch_size = 1000)
pageExist = False
for page in pages:
if pageName == page.pagename:
pageExist = True
break
if pageExist:
self.render_wiki(pageName, page.content)
else:
self.redirect('/_edit' + pageName)
PAGE_RE = r'(/(?:[a-zA-Z0-9_-]+/?)*)'
app = webapp2.WSGIApplication([('/', MainPage), ('/signup', Signup) , ('/login', Login),('/logout', Logout), (PAGE_RE, WikiPage), ('/_edit' + PAGE_RE, EditWiki)], debug = True)
尝试将EditWiki路由移动到WikiPage路由之前。PAGE_RE匹配_editMyPageName所以在EditWiki开始之前抓住它。我想说的是,对于每个重定向,您的页面名称只会在前面附加一个额外的"_edit"。