django 정의 데이터베이스 모델의 기본 지식
7884 단어 django
공통 필드:
Django
에서 데이터베이스 테이블의 필드 형식과 비추기 위해 Field
를 정의했다.다음은 자주 사용하는 필드 유형을 소개합니다.AutoField:
데이터베이스에 비추는 것은
int
유형으로 자동으로 증가하는 특성을 가진다.일반적으로 이 유형을 사용할 필요가 없다. 만약에 메인 키를 지정하지 않으면 모델은 자동으로 id
라는 자동 성장의 메인 키를 생성한다.다른 이름을 지정하고 자동으로 늘어나는 키를 가지고 싶으면 AutoField
을 사용해도 된다.BigAutoField:
64비트의 성형은
AutoField
과 유사하지만 데이터의 범위는 1-9223372036854775807
에 불과하다.BooleanField:
모델 차원에서 수신된 것은
True/False
이다.데이터베이스 차원에서tinyint
유형이다.기본값이 지정되지 않은 경우 기본값은 None
입니다.CharField:
데이터베이스 차원에서
varchar
유형이다.Python
차원에서 일반적인 문자열입니다.이 유형은 사용할 때 가장 큰 길이를 지정해야 하고 max_length
이 키워드 파라미터를 전달해야 한다.DateField:
날짜 유형.
Python
중datetime.date
유형으로 연월일을 기록할 수 있다.데이터베이스에 비추는 것도 date
유형이다.이 Field
를 사용하여 다음 매개변수를 전달할 수 있습니다.auto_now
: 이 데이터를 저장할 때마다 현재 시간을 사용합니다.예를 들어 수정 날짜를 기록하는 필드로서 이 속성을 True
로 설정할 수 있다.auto_now_add
: 데이터가 처음 추가될 때마다 현재 시간을 사용합니다.예를 들어 첫 번째 입고를 기록하는 필드로서 이 속성을 True
로 설정할 수 있다.4 auto_now_dd가 추가되었을 때, 대상을 업데이트할 때 변동이 없습니다.
DateTimeField:
날짜, 시간 유형
DateField
과 유사합니다.날짜뿐만 아니라 시간도 저장할 수 있다.데이터베이스에 매핑되는 유형은 datetime
입니다.이것Field
도 auto_now
과auto_now_add
두 속성을 사용할 수 있다.TimeField:
시간 유형.데이터베이스에서
time
유형입니다.Python
중datetime.time
유형입니다.EmailField:
유사하다
CharField
.데이터베이스 밑바닥에서도 varchar
유형이다.최대 길이는 254자입니다.FileField:
파일을 저장하는 데 쓰인다.
ImageField:
그림 파일을 저장하는 데 사용되는
FloatField:
부동 소수점 유형.데이터베이스에 매핑되는 유형은
float
입니다.IntegerField:
정형하다.값의 구간은
-2147483648——2147483647
입니다.BigIntegerField:
대성형.값의 구간은
-9223372036854775808——9223372036854775807
입니다.PositiveIntegerField:
정형.값의 구간은
0——2147483647
입니다.SmallIntegerField:
소형 성형.값의 구간은
-32768——32767
입니다.PositiveSmallIntegerField:
정소 성형.값의 구간은
0——32767
입니다.TextField:
대량의 텍스트 형식.데이터베이스에 비추는 것은 longtext 형식입니다.
UUIDField:
uuid
형식의 문자열만 저장할 수 있습니다.uuid
는 32비트의 전 세계 유일한 문자열로 일반적으로 메인 키로 사용된다.URLField:
CharField
와 유사하지만 url
형식의 문자열만 저장할 수 있습니다.그리고 기본값max_length
은 200입니다.Field의 일반 매개변수:
null:
True
로 설정하면 Django
맵이 비어 있는지 여부를 지정합니다.기본값은 False
입니다.문자열 관련Field
(CharField/TextField)을 사용할 때 정부는 이 인자, 즉 기본값False
을 사용하지 않는 것을 추천합니다.Django
문자열과 관련된 Field
를 처리할 때 이것Field
의 null=False
에도 이것Field
에 아무런 값을 전달하지 않으면 Django
에도 빈 문자열""
을 기본값으로 저장하기 때문이다.따라서 null=True
를 다시 사용하면 Django
두 가지 빈 값(NULL 또는 빈 문자열)이 생성됩니다.폼 검증을 할 때 이 문자열을 비워 두려면 blank=True
을 사용하십시오.만약 당신의 Field
이 BooleanField
이라면, 대응하는 빈 필드는 NullBooleanField
이다.blank:
표의 검증을 할 때 이 필드를 비울 수 있는지 표시합니다.기본값은
False
입니다.이것은 null
와는 차이가 있고 null
는 순수 데이터베이스 등급이다.blank
는 표 검증 등급이다.db_column:
이 필드의 데이터베이스에 있는 이름입니다.이 매개 변수를 설정하지 않으면 모델의 속성 이름을 사용합니다.
default:
기본값입니다.하나의 값이나 함수일 수 있지만
lambda
표현식은 지원되지 않습니다.또한 목록/사전/집합 등 가변적인 데이터 구조는 지원되지 않습니다.primary_key:
주 키인지 여부입니다.기본값은
False
입니다.unique:
테이블에서 이 필드의 값이 유일한지 여부입니다.보통 핸드폰 번호/메일박스 등을 설정합니다.
추가
Field
매개 변수는 공식 문서를 참조하십시오.https://docs.djangoproject.com/zh-hans/2.0/ref/models/fields/모델
Meta
구성:일부 모델 단계의 설정에 대해우리는 모델에서 하나의 종류를 정의할 수 있다.
Meta
.그리고 이 클래스에 클래스 속성을 추가하여 모델의 역할을 제어한다.예를 들어 우리는 데이터베이스에 비추려고 할 때 모델의 이름이 아니라 자신이 지정한 표 이름을 사용하려고 한다.그러면 우리는 Meta
류에 db_table
의 속성을 추가할 수 있다.예제 코드는 다음과 같습니다.class Book(models.Model):
name = models.CharField(max_length=20,null=False)
desc = models.CharField(max_length=100,name='description',db_column="description1")
class Meta:
db_table = 'book_model'
다음은
Meta
류 중의 일부 상용 설정에 대해 설명할 것이다.db_table:
이 모델은 데이터베이스에 있는 테이블 이름을 비추어 줍니다.이 매개 변수를 지정하지 않으면, 비추는 동안 기본 테이블 이름으로 모델 이름을 사용합니다.
ordering:
추출된 데이터의 정렬 방식을 설정합니다.뒷장에서는 데이터를 어떻게 찾는지 이야기할 것이다.예를 들어 데이터를 찾을 때 추가된 시간에 따라 정렬하고 싶다면 예시 코드는 다음과 같다.
class Book(models.Model):
name = models.CharField(max_length=20,null=False)
desc = models.CharField(max_length=100,name='description',db_column="description1")
pub_date = models.DateTimeField(auto_now_add=True)
class Meta:
db_table = 'book_model'
ordering = ['pub_date']
더 많은 설정은 뒤에 천천히 소개될 것이다.django 공식 문서:https://docs.djangoproject.com/en/2.0/ref/models/options/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.