Python注册帐户mod

2024-04-19 18:40:26 发布

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

我相信这已经被问过了,但我已经搜索了几个小时,找不到任何工作,所以提前道歉。我在网上学习用Python编写代码还处于初级阶段,为了让它成为我自己的课程,我对Python有些偏离。你知道吗

当用户注册帐户时,如果用户名已经被占用,我想返回一个错误。否则创建帐户并重定向到登录页。但是我不知道如何定义if语句来返回正确的控制台响应,因为它当前只返回用户。我希望它返回success/error,并使用ajax捕获这个响应。你知道吗

到目前为止,我的注册模式是:

class RegisterModel:

    def __init__(self):
        self.client = MongoClient()
        self.db = self.client.codewizard
        self.Users = self.db.users

    def insert_user(self, data):
        existing_user = self.Users.find_one({"username": data.username})
        if existing_user:
            pymsgbox.native.alert('Username already taken!', 'Title')
        else:
            hashed = bcrypt.hashpw(data.password.encode(), bcrypt.gensalt())

            id = self.Users.insert({"username": data.username, "name": data.name, "password": hashed, "email": data.email})
            print("uid is", id)

            pymsgbox.native.alert('Account created, please login!', 'Title')

以及控制器:

class PostRegistration:
    def POST(self):
        data = web.input()

        reg_model = RegisterModel.RegisterModel()
        reg_model.insert_user(data)

        return data.username

最后是javascript(没有用if语句完成)

 $(document).on("submit", "#register-form", function(e){
    e.preventDefault();
    var form = $('#register-form').serialize();
    $.ajax({
        url: '/postregistration',
        type: 'POST',
        data: form,
        success: function(response){
            console.log(response);
        }
    });
});

pymsgbox将被Javascript替换,当我可以让它工作时!你知道吗


Tags: selfformdataifdefusernameajax帐户
1条回答
网友
1楼 · 发布于 2024-04-19 18:40:26

我想出来了:

控制器:

class PostRegistration:
def POST(self):
    data = web.input()

    reg_model = RegisterModel.RegisterModel()
    register = reg_model.insert_user(data)
    if register:
        return register

然后在register modelif语句中返回“error”。你知道吗

相关问题 更多 >