为什么波斯特有两个论点?

2024-10-03 06:31:21 发布

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

我有这样一个服务器端webpy代码:

urls = (
    '/home', 'homePage',
    '/clients/(.*)', 'clientsPage',
    )

# Class for common pages methods and parameters
class allpages(object): ....

    def logout(self):
        i=web.input().keys()[0]
        if i=='logout': session.kill()
        return

class homePage(allpages):
    def GET (self):
        self.loginCheck()
        return self.showpage('home',self.userName())

    def POST (self):
        self.logout()
        return

class clientsPage(allpages):
    def GET (self, client):
        self.loginCheck()
        if client == '': clientID=renderInc.firmlist('clients')
        elif client == 'new': clientID=renderInc.newfirm('clients')
        else: clientID = 'There is no such client' #TODO: make a 404 page
        return self.showpage('clients',clientID)

    def POST (self):
        self.logout()
        return

在我的一个HTML模板(页脚)中有一个“注销”按钮,它在单击时运行脚本:

^{pr2}$

在/home部分中一切正常,但当我试图从/clients/pages注销时,会引发一个错误:TypeError:POST()只接受1个参数(给定2个参数)。在

问题1:为什么会发生? 问题2:是否有任何方法可以使任何方法在默认情况下在每个页面上的POST中运行(而不是在每个类中复制self.logout()行)。在


Tags: selfclienthomereturnifdefpagespost
1条回答
网友
1楼 · 发布于 2024-10-03 06:31:21

问题1: regex中clientsPage-(.*)的捕获说明网页.py希望捕获URL的这一部分并将其作为参数传递给POST方法。从你的代码来看,这似乎是客户机id

问题2: 我只是用一个单独的网址注销。你不需要每一页都注销。在

相关问题 更多 >