如何在Google App引擎上实施用户名可用性检查?

时间:2010-03-30 23:47:24

标签: google-app-engine

当有人注册我的网站时,他们必须使用唯一的用户名注册。我目前的伪代码是:

if(datastore.nameIsAvailable(name)){
    datastore.createUser(name);
}

如何确保在nameIsAvailable返回true和createUser完成之间,我的应用的另一个实例不会创建具有相同名称的用户?

1 个答案:

答案 0 :(得分:2)

您可以查询名称:

appuser = AppUser.all().filter('name =', name).get()
if appuser:
  # user already has this name
else:
  # it's all yours!

...或者更好的是将用户名作为AppUser

appuser = AppUser.get_by_key(name)
if appuser:
  # user already has this name
else:
  # it's all yours!

......甚至更好:

appuser = AppUser.get_or_insert(name)
# appuser is now either the existing user with this name,
# or a new user with this name!

将您的名称作为实体的key_name意味着它将永远是唯一的,并且以他们的名字查找用户将尽可能快。

(假设您使用的是Python,如果没有,我可以添加一个Java示例,但想法是一样的)