我正在使用debianlinux上的Web2Py构建一个简单的博客。 我有个管制员叫我博客.py,我在其中添加了以下函数以及if块:
def display_form():
form = SQLFORM(db.blog)
if form.process().accepted:
session.flash = 'form accepted'
redirect(URL('thanks'))
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill out the form'
return locals()
我接着添加了一个名为blog/display的“view”html文件_表单.html,基本模板如下:
^{pr2}$我很好地加载了“display_form”博客页面,它成功地接受了所有输入,但它没有重定向到谢谢页面。相反,浏览器生成一个“invalid function blog/thanks”错误。在
我尝试通过Web2Py管理界面删除已编译的应用程序,然后重新编译所有的东西。还是不行。我为“谢谢”页面添加了一个“视图”,但这并没有改变任何东西。我重新启动了Web2Py框架和web服务器,但是仍然没有启动。 一些网站提到routes.py但我不明白为什么这会有意义。在
请帮忙, 我在这碰壁。在
所以,在修改了很多东西,删除了所有编译过的文件之后,重新从头开始,解决方案变得比我试图做的简单得多。 在前面提到的博客.py控制器,并返回局部变量,如下所示:
然后,我添加了一个blog/thanksview文件,其中包含一个基本的html头,声明:
^{pr2}$最后,它将显示表单博客页面重新定向到感谢页面,从而刷新表单接受消息(也如预期)。在
谢谢你的帮助,安东尼! 干杯。在
当您只向
URL()
助手传递一个参数时,它假定参数是函数名,控制器是当前控制器。由于当前控制器是blog
,URL('thanks')
将生成以下URL:/yourapp/blog/thanks
。在假设您的
thanks
函数位于不同的控制器中(可能是default.py
),在这种情况下,对上述URL的请求将生成您观察到的错误。只需将URL更改为URL('default', 'thanks')
。在相关问题 更多 >
编程相关推荐