如何在用户创建帐户时为他们生成唯一的用户名?

问题描述 投票:0回答:2

我正在使用 Python 与 MySQL 数据库进行交互。我有一个允许用户创建帐户的功能。此函数的参数是:全名、电子邮件、密码。

基于这些参数,我想为用户生成一个唯一的用户名。最好的方法是什么?

我是否应该生成一个随机名称列表(使用一些随机函数)然后遍历数组直到找到数据库中找不到的第一个用户名,然后将其分配给用户?或者有更好、更有效的方法吗?

任何帮助将不胜感激。

python mysql authentication uniqueidentifier user-accounts
2个回答
0
投票

如果您不需要完全人性化的用户名,那么您最好使用 UUID。您可以使用内置的

uuid
模块生成这样的一个:

import uuid

username = uuid.uuid4()
print(username)

生成相同的两个相同 UUID 的可能性在天文数字上是不可能的。因此,您不需要检查它是否已存在于数据库中,但是,这样做也没有坏处。


0
投票

请不要使用密码作为参数来生成用户名:)

  • 可以使用email-address作为用户标识,这个比较常用。如果您愿意,您还可以让用户选择另一个名称,以便将用户名显示给其他用户,但保留电子邮件地址作为识别用户的方式
  • 否则你可以根据他们的名字和电子邮件地址生成一堆可能的选项并检查它们是否已经存在。您可以让用户从未使用的选项中进行选择。

您也可以只让用户选择他们的用户名,但检查它是否已经被占用。

© www.soinside.com 2019 - 2024. All rights reserved.