개인 과제를 시작하고 하나씩 받아써보는 중에
계속 신경쓰였던 Field는 무엇이고 어떤 것이 있는지, 올바르게 사용하고 있는 중인지 궁금해졌다.
그래서 하는 공부 겸 내용 정리.
< Field >
장고에서의 model은 class로 정의되며, 어떤 속성(Attribute, 요것이 Field!)을 가지는지 설정할 수 있다.
각 장고 앱에 기본적으로 생성되는 model.py에 정의한다.
강의에서 나온 관계 필드..
이것을 생각하며 데이터 모델링을 진행해야하고, 이 모델이 코딩으로 이어진다.
OneToOneField | 사용자 - 프로필처럼 1 사람에 1 기능이 있는 필드 1 = 1 |
OnetoMany (= ForeignKey) | 한개의 글은 작성자 한 사람, 한 작성자는 여러개의 글을 쓸 수 있다! 1 => 다수 |
Many to Many | 강의에서 들은 바로는 피자… 여러가지 피자 <==> 여러가지 토핑 팔로우 - 팔로잉 관계같은 것이 속한다 다수 <=> 다수 |
Field에는 관계를 표현하는 필드외에도 속성 필드가 있다.
CharField | 제한 문자열 삽입 필드 max_length= 옵션으로 지정해준다. |
EmailField | 이메일 주소 형태를 입력하는 필드 |
URLField | url주소를 적는 필드 |
TextField | 대용량 문자열을 처리한다 (글쓰기 기능 만들때 본 듯!) 대용량 문자열이다보니 CharField보다 db용량을 많이 쓰지만 크기제한을 따로 하지 않는 경우가 많다. |
IntegerField | 정수형 필드. 정수에 따라 Big,Small로 쓰기도 한다. default= 로 기본값을 정해준다. |
BooleanField | True, False만 저장하는 필드 Null허용시 앞에 붙인다. NullBooleanField initial= 수정없이 저장될 경우 값을 bool값으로 넣어줌 |
DatetimeField | DatetimeField 시간관련 값 저장 필드. Date/Time으로 떼어서 사용할 수 있다 만약 자동으로 지금 시간을 넣고싶으면 auto_now = True로 옵션을 바꿔주면 된다. auto_now 옵션 : save 될 때마다 현재 시간을 입력한다 auto_now_add 옵션 : 맨 처음 생성한 현재 날짜만 넣어준다 |
FileField | 파일을 업로드하는 필드 upload_to에 경로지정, 폴더 탐색은 settings.py에 MEDIA_ROOT경로로 부터 시작한다 |
ImageField | 파일필드의 파생 필드로, 파일이 이미지인지 체크해줌 |
DecimalField | 소수점 관련 필드.. 쓸일이 있을까?🤔 max_digits와 decimal_places를 필수로 지정해준다. |
SlugField | 이미 확보된 데이터에서 url을 만드는 필드 slug = models.SlugField(max_length=40) 이런 식으로 class내에 넣어주고, 데이터를 url로 만들어준다 데이터 : <title> apple is delicious </title> <content> 사과가 맛있는 이유는~ </content> title을 url로 만들어 www.example.com/title/apple_is_delicious 이런 식으로 만들 수 있다는 것 |
+ 필드옵션
ex) models.CharField(*option*)
필드 옵션은 위 예시의 옵션 부분에 들어가는 기능으로
필드마다 기본적으로 적용해야하는 것이 있기도하고..
필요에 따라 자유롭게 설정할 수도 있다.
이해가 안돼서 일단 따왔는데.. 과제하면서 같이 연구해보자^^;
+ 더 자세한 정보는 레퍼런스를 참고하자...
'AI 웹개발반' 카테고리의 다른 글
[WIL]:04 4주차 장고 시작 (4) | 2023.04.10 |
---|---|
[TIL] 아직은 혼자 해결하기 어려운 에러들이 많다 (1) | 2023.04.07 |
[TIL+] 오류메세지 드디어 해결(?) (0) | 2023.04.06 |
[TIL] django 명령어 실행 문제 해결 (0) | 2023.04.05 |
[TIL] 장고 숙제 해결하기 + 공부한 것 정리 (0) | 2023.04.04 |