Web2Py错误:无效函数blog/thanks

2024-05-29 00:11:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用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但我不明白为什么这会有意义。在

请帮忙, 我在这碰壁。在


Tags: pyformifresponsehtmldisplayblog页面
2条回答

所以,在修改了很多东西,删除了所有编译过的文件之后,重新从头开始,解决方案变得比我试图做的简单得多。 在前面提到的博客.py控制器,并返回局部变量,如下所示:

def thanks():
    return locals()

然后,我添加了一个blog/thanksview文件,其中包含一个基本的html头,声明:

^{pr2}$

最后,它将显示表单博客页面重新定向到感谢页面,从而刷新表单接受消息(也如预期)。在

谢谢你的帮助,安东尼! 干杯。在

当您只向URL()助手传递一个参数时,它假定参数是函数名,控制器是当前控制器。由于当前控制器是blogURL('thanks')将生成以下URL:/yourapp/blog/thanks。在

假设您的thanks函数位于不同的控制器中(可能是default.py),在这种情况下,对上述URL的请求将生成您观察到的错误。只需将URL更改为URL('default', 'thanks')。在

相关问题 更多 >

    热门问题