私はSEOに適したURLでブログアプリを書いています。無効なURLにアクセスすると、次のエラーが発生します。
UnboundLocalError:割り当て前に参照されるローカル変数'path'
有効なURLは正常に機能します。
コードは次のとおりです。
class ViewPost(BaseHandler):
def get(self, slug):
post = Posts.all()
post.filter('path =', slug)
results = post.fetch(1)
for post in results:
path = post.path
if path == slug:
self.render_template('post.html', {'post':post})
else:
self.response.out.write('no post with this slug')
エラーのない有効な例と、エラーをスローする無効な例を次に示します。無効な例で完全なスタックトレースを確認できます。
完全なコードはgithubの62行目にあります。
前もって感謝します。私はPythonを初めて使用するので、あなたの助けとフィードバックに本当に感謝しています。
アップデート
コンテキストとして、2つの文字列を比較して、提供するコンテンツがあるかどうかを判断しています。
私が期待するもの:スラッグとパスが等しい場合、テンプレートをレンダリングする必要があります。等しくない場合:「このスラッグで投稿なし」メッセージで応答することになっています。
私がした他のこと。
スラッグとパスの値を取得することを確認しました。
このようにアイデンティティを変えてみました。
これにより、エラーが発生しなくなりますが、else応答が返されません。代わりに、ビューソースに何もない空白のページが表示されます。
class ViewPost(BaseHandler):
def get(self, slug):
post = Posts.all()
post.filter('path =', slug)
results = post.fetch(1)
for post in results:
path = post.path
if path == slug:
self.render_template('post.html', {'post':post})
else:
self.response.out.write('no post with this slug')