Maison >base de données >tutoriel mysql >Comment puis-je remplacer la clé primaire à incrémentation automatique de Django par un identifiant unique, court et entier ?
Dans Django, la clé primaire par défaut est un entier positif auto-incrémenté utilisé partout la demande. Cependant, cela expose publiquement le nombre d’entités dans la base de données, ce qui nécessite une alternative. Cet article répond à un ensemble spécifique d'exigences pour une clé primaire obscurcie :
La méthode Instagram, inspirée de cet article, répond à ces exigences. L'ID généré se compose de :
Identifiant Génération :
START_TIME = <unix timestamp> def make_id(): t = int(time.time()*1000) - START_TIME u = random.SystemRandom().getrandbits(23) id = (t << 23) | u return id def reverse_id(id): t = id >> 23 return t + START_TIME
Modèle :
class MyClass(models.Model): id = models.BigIntegerField(default=fields.make_id, primary_key=True)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!