How to Generate UUID in Python

Python includes a built-in uuid module for generating RFC 4122 compliant UUIDs. This guide covers all UUID generation methods with practical examples.

1. Generate UUID v4 (Random)

import uuid

# Generate a random UUID (version 4)
my_uuid = uuid.uuid4()
print(my_uuid)
# Output: 550e8400-e29b-41d4-a716-446655440000

# Get as string
uuid_string = str(uuid.uuid4())
print(uuid_string)

2. Generate UUID v1 (Timestamp)

import uuid

# Generate a timestamp-based UUID (version 1)
my_uuid = uuid.uuid1()
print(my_uuid)
# Output: 2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d

3. UUID Formatting

import uuid

my_uuid = uuid.uuid4()

# Standard format
print(str(my_uuid))  # "550e8400-e29b-41d4-a716-446655440000"

# Without dashes (hex)
print(my_uuid.hex)  # "550e8400e29b41d4a716446655440000"

# Uppercase
print(str(my_uuid).upper())

4. UUID in Django Models

from django.db import models
import uuid

class MyModel(models.Model):
    id = models.UUIDField(
        primary_key=True,
        default=uuid.uuid4,
        editable=False
    )
    name = models.CharField(max_length=100)

5. Validate a UUID

import uuid

def is_valid_uuid(val):
    try:
        uuid.UUID(str(val))
        return True
    except ValueError:
        return False

print(is_valid_uuid("550e8400-e29b-41d4-a716-446655440000"))  # True
print(is_valid_uuid("not-a-uuid"))  # False

6. Generate Multiple UUIDs

import uuid

# Generate a list of 10 UUIDs
uuids = [str(uuid.uuid4()) for _ in range(10)]
for u in uuids:
    print(u)

Ready to use what you learned?

Try UUID Generator now