Python Django如何生成uuid?

Python Django如何生成uuid?,python,django,uuid,Python,Django,Uuid,我在Django中有一个模型以这种方式使用uuid: uuid = models.CharField(max_length=100, default=uuid.uuid1) 问题是,当我一个接一个地生成两个对象时,我得到了: 933e35c4-df1c-11e6-8a53-ace01055799e 然后: 933e35c5-df1c-11e6-8a53-ace01055799e 据我所知,每个uuid都是随机生成的,但是冲突的概率非常低,当我得到这两个几乎相同的uuid时,它们到底是如何生

我在Django中有一个模型以这种方式使用uuid:

uuid = models.CharField(max_length=100, default=uuid.uuid1)
问题是,当我一个接一个地生成两个对象时,我得到了:

933e35c4-df1c-11e6-8a53-ace01055799e
然后:

933e35c5-df1c-11e6-8a53-ace01055799e
据我所知,每个uuid都是随机生成的,但是冲突的概率非常低,当我得到这两个几乎相同的uuid时,它们到底是如何生成的?(它只在第一个区块的最后一个数字上有所不同)这种可能性有多大?。有没有更安全的方法


问题是,我有一组客户机,每个客户机通过电子邮件获得一个唯一的uuid,如果他们只需更改一个字符并获取另一个客户机的uuid,这将是一个问题。

您使用的是
uuid.uuid1
,正如文档所述:

根据主机ID、序列号和当前时间生成UUID


您应该使用
uuid.uuid4
,它会生成一个随机的uuid。

它使用
uuid.uuid1
来执行此操作(这是您的默认值)。见:

根据主机ID、序列号和当前时间生成UUID。 如果未指定节点,则使用getnode()获取硬件 地址。如果给定时钟顺序,则将其用作序列号; 否则,选择随机14位序列号


还有其他算法,可能您正在寻找的是
uuid4

它甚至说明了它是如何在您引用的第一行代码中生成的:使用
uuid.uuid1
函数,其代码存在于Python标准库中。。