Skip to main content
 首页 » 编程设计

python之Web2Py 错误 : invalid function blog/thanks

2024年08月23日46sharpest

我正在 Debian Linux 上使用 Web2Py 构建一个简单的博客。 我有一个名为 blog.py 的 Controller ,我向其中添加了以下函数以及一个 if block :

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_form.html 的“ View ”html 文件,其中包含一个基本模板,如下所示:

{{extend 'layout.html'}} 
<h1>Display Form</h1> 
{{=form}} 

我很好地加载了“display_form” 博客页面,它成功地接受了所有输入,但它没有重定向到谢谢 页面。相反,浏览器会生成一个“无效函数 blog/thanks” 错误。

我尝试通过 Web2Py 管理界面删除已编译的应用程序,然后重新编译所有内容。仍然不起作用。我为“感谢”页面添加了一个“ View ”,但这并没有改变任何东西。我重新启动了 Web2Py 框架和 Web 服务器,但仍然没有成功。 一些网站提到了一个可能的 routes.py 问题,但我很困惑为什么这会是相关的。

请帮忙, 我在这里碰壁了。

请您参考如下方法:

因此,在调整了一些东西并删除了所有已编译的文件并再次从头开始之后,结果证明该解决方案比我尝试的要简单得多。 我只是在上述 blog.py Controller 中定义了一个名为 thank 的函数,并返回局部变量,如下所示:

def thanks(): 
    return locals() 

然后我添加了一个 blog/thanks view 文件,带有一个基本的 html 标题,声明:

Thank you for submitting the form! 

它最终将 display_form 博客页面重定向到 thanks 页面,从而闪烁 form accepted 消息(也符合预期) .

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