0

一種の wiki を構築します。次の関数では、ページが既に存在するかどうかを確認しています。そうでない場合は、編集ページにリダイレクトする必要があります。ただし、ブラウザが停止するまで、無限にリダイレクトされます。「_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)
4

1 に答える 1

1

EditWikiルートをWikiPageルートの前に移動してみてください。PAGE_REは_editMyPageNameと一致するため、EditWikiを実行する前にそれを取得します。リダイレクトごとに、ページ名に「_edit」が追加されるだけだと思います。

于 2012-06-03T13:22:35.593 に答える