我正在编写一个带有 SEO 友好 URL 的博客应用程序。当我访问无效的网址时,我收到以下错误:
UnboundLocalError:分配前引用的局部变量“路径”
有效的网址工作正常。
这是代码:
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 新手,所以非常感谢您的帮助和反馈。
更新
对于上下文,我正在比较两个字符串以确定我是否有要提供的内容。
我期望看到的:如果 slug 和 path 相等,它应该呈现模板。如果不相等:它应该以“no post with this slug”消息进行响应。
我做过的其他事情。
我已经验证我得到了一个 slug 和路径值。
我试过改变这样的想法。
这阻止了我得到错误,但我没有得到我的 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')