在Google App Engine中使用自定义函数

1 投票
1 回答
561 浏览
提问于 2025-04-16 08:01

我正在尝试写一个函数,用来检查用户是否登录。我把这个函数放在了主页面类的外面,直到我在主页面类的get方法里使用它时,没有出现任何错误。这个函数长这样:

def LoginCheck():
username = self.request.cookies.get('username') 
password = self.request.cookies.get('password')
if username and password:
    checkq = db.GqlQuery("SELECT * FROM Users WHERE username = :1 AND password = :2", username, password)
    checkresult = checkq.get()
    if checkresult is None:
        self.redirect("/wrong")
else:
    self.redirect("/wrong2")

但是当我尝试使用它时,它返回了:

line 14, in LoginCheck
    username = self.request.cookies.get('username')
NameError: global name 'self' is not defined

我哪里做错了呢?

1 个回答

5

你需要在函数定义中加上“self”。可以参考一下Python教程的第9.3.2节

def LoginCheck(self):
    username = self.request.cookies.get('username') 
    password = self.request.cookies.get('password')
    if username and password:
        checkq = db.GqlQuery("SELECT * FROM Users WHERE username = :1 AND password = :2", username, password)
        checkresult = checkq.get()
        if checkresult is None:
            self.redirect("/wrong")
    else:
        self.redirect("/wrong2")

撰写回答