Django의 특정 테이블에 대해 기본 키를 고유한 정수로 바꾸는 방법
Django 애플리케이션에서 기본 기본 키는 자동입니다. - URL을 통해 외부 사용자에게 표시될 수 있는 증가된 정수입니다. 이 정보를 보호하기 위한 일반적인 방법은 기본 키를 해시하는 것입니다. 그러나 이 방법에는 빈번한 해싱 및 해싱 해제가 필요할 수 있으므로 비효율적일 수 있습니다.
해결책
더 나은 접근 방식은 전역적으로 고유하지 않지만 고유한 정수를 생성하는 것입니다. 특정 테이블 내에서만 고유합니다. 이는 타임스탬프와 임의 구성요소의 조합을 사용하여 달성할 수 있습니다:
ID 생성을 위한 Python 코드
import time import random START_TIME = time.time() * 1000 # Initial timestamp (arbitrary) def make_id(): """ Generates a unique ID based on a timestamp and random bits. """ t = int(time.time() * 1000) - START_TIME u = random.SystemRandom().getrandbits(23) id = (t << 23) | u return id def reverse_id(id): """ Converts ID back to a timestamp. """ t = id >> 23 return t + START_TIME
Django 모델
from django.db import models class MyClass(models.Model): id = models.BigIntegerField(default=make_id, primary_key=True)
장점
추가 참고 사항
위 내용은 전역 고유성 없이 Django 모델에 대한 고유 정수 ID를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!