2010-12-29 2 views
2

Я планирую создать уникальный идентификатор из символов и цифр. ID должно выглядеть примерно такСоздание уникального уникального идентификатора в Python

XXXX-XXXX-XXXX-XXXX

, где X представляет собой комбинацию цифр, маленьких и капитализацией букв. Этот идентификатор будет храниться в базе данных mysql и будет увеличиваться, чтобы поддерживать согласованность данных.

Любые советы о том, как начать?

+0

Это напоминает http://stackoverflow.com/questions/534839/how-to-create-a-guid-in-python и следующий логический вопрос может быть связан с HTTP: // StackOverflow. com/questions/412341/how-should-i-store-guid-in-mysql-таблицы относительно хранения GUID в MySQL. – Suirtimed

ответ

16

Используйте uuid модуль;

>>> import uuid 

# make a UUID based on the host ID and current time 
>>> uuid.uuid1() 
UUID('a8098c1a-f86e-11da-bd1a-00112444be1e') 

# make a UUID using an MD5 hash of a namespace UUID and a name 
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org') 
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e') 

# make a random UUID 
>>> uuid.uuid4() 
UUID('16fd2706-8baf-433b-82eb-8c7fada847da') 

# make a UUID using a SHA-1 hash of a namespace UUID and a name 
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org') 
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d') 

Ваше 4-символьное требование может быть эмулировано;

>>> "-".join([x[:4].upper() for x in str(uuid.uuid4()).split("-")]) 
'C984-EE70-4BFD-9963-9BB9' 
>>> "-".join([x[:4].upper() for x in str(uuid.uuid4()).split("-")]) 
'30D7-4356-493E-B887-2671 
+0

благодарим за ответ, это именно то, что я искал, –

Смежные вопросы