Search code examples
djangopython-3.xuuid

How to create a 8 digit Unique ID in Python?


I am making a web app for practice, it is a job portal. I want to create 8 digit unique IDs for job which will be visible to the end user. Ids can have numbers and alphabets. Pattern needs to be 8 digits without hyphens or dashes like XXXXXXXX.

I know there is UUID thing in python. But they seem to generate the id in their specific format. Is there a way to get the id in my required format? If not can someone please guide me on how to go about it?

I know there is a similar thread How can I generate a unique ID in Python?; but it does not answer my question specifically. It did not answer what I was trying to achieve.

Thanks in advance.


Solution

  • Well you could use uuid.hex

    import uuid
    uuid.uuid4().hex[:8]  # Might reduce uniqueness because of slicing
    

    Or Django also has helper function get_random_string which accepts two parameters length (default=12) and allowed_chars:

    from django.utils.crypto import get_random_string
    get_random_string(8)