파이썬
-
[Django] ORM, QuerySet, Lookup파이썬/Django 2023. 1. 3. 09:30
Django Shell 열기 # python shell 열기 python manage.py shell >>> # 사용할 app 임포트하기 >>> from rooms.models import Room ORM .get() Room.objects.get(pk=1) 한 번에 두 가지 이상의 요소는 get 할 수 없음 .get()은 검색 결과가 1개 뿐인 것을 반환할 수 있음 .all() .filter() Room.objects.filter(price__gt=15) Room.objects.filter(name__contains="서울" ) .create() 새 데이터 생성하기 Amenity.objects.create(name="Amenity from the console", description="How cool..
-
[Django] 관계(Relationship) 설정하기 many to many, one to may, many to one파이썬/Django 2022. 12. 31. 03:34
one to may 일대일 관계 User => [Room1, Room2, Room3] many to one 다대일 관계 [Room1, Room2, Room3] => User many to many 다대다 관계 [Amenity1, Amenity2, Amenity3] => [Room1, Room2, Room3] Room 과 Amenity 사이의 관계(Relationship) 만들기 어메니티는 여러 개의 방에 복수의 어메니티가 존재할 수 있으므로 다 대 다 (N:M) 관계이다. amenities = models.ManyToManyField( "rooms.Amenity", ) 위 코드를 Room 클래스 안에 넣어준다. 전체 코드 📁 rooms/model.py from django.db import models ..
-
[Django] common app으로 공통코드 관리하기파이썬/Django 2022. 12. 30. 09:02
common app 모든 app에서 공유 가능한 공통 코드를 가지고 있는 앱. 📁 common/models.py from django.db import models class CommonModel(models.Model): """ Common Model Definition """ # auto_now_add : 이 model이 처음 만들어진 날짜와 시간을 전달 created_at = models.DateTimeField(auto_now_add=True) # auto_now : 이 model이 업데이트 될 때마다 그 날짜와 시간을 전달 updated_at = models.DateTimeField(auto_now=True) class Meta: abstract = True class Meta: 의 역할 이 C..
-
[Django] app 생성하고 model 설정하기, 옵션 추가하기파이썬/Django 2022. 12. 29. 09:10
사용자 유저 프로필 기능 추가하기 📁 users/models.py from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): # gender 컬럼에 옵션으로 넣어 줄 클래스 class GenderChoices(models.TextChoices): # 첫번째 값은 데이터베이스에 들어갈 value, 두번째 값은 관리자 페이지에 들어갈 label MALE = ("male", "Male") FEMALE = ("female", "Female") class LanguageChoices(models.TextChoices): KR = ("k..
-
[Django] 모델 간 데이터 연결하는 방법, 외래키(FK) 사용하기파이썬/Django 2022. 12. 27. 22:43
ForeignKey 사용하기 ForeignKey = 외래키 house에서 user의 정보를 컬럼으로 가져오고 싶으면 models.ForeignKey를 사용하면 된다. owner = models.ForeignKey("참조할 모델", on_delete=) user 정보를 참조하고 싶으면 참조할 모델에 user.User를 입력하면 된다. 해당 컬럼의 정보가 삭제되었을 때 on_delete on_delete는 해당 컬럼의 정보가 삭제되었을 때의 행동을 설정한다. on_delete=models.SET_NULL: 데이터 유지 on_delete=models.CASCADE : 자동 삭제 예컨대, 숙소정보의 경우 숙소 주인 host 계정이 삭제되면 숙소 정보도 같이 삭제된다. 📁 houses/models.py from ..
-
[Django] 어드민 페이지 커스텀하기파이썬/Django 2022. 12. 27. 21:30
fieldsets 과 fields fields 를 사용할 경우 📁 uesrs/admin.py from django.contrib import admin from django.contrib.auth.admin import UserAdmin from .models import User # Register your models here. @admin.register(User) class CustomUserAdmin(UserAdmin): fieldsets = None fields = ("email", "password", "name") fieldsets 을 사용할 경우 from django.contrib import admin from django.contrib.auth.admin import UserAdmin..
-
[Django] app에 컬럼 추가하기파이썬/Django 2022. 12. 27. 20:34
user app 모델에 컬럼 추가하기 📁 uesrs/models.py from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class User(AbstractUser): # 성과 이름으로 분류하는 것은 서구적인 정보 입력 방식이기 때문에 관리자 페이지에서 보이지 않도록 설정한다. editable=False first_name = models.CharField(max_length=150, editable=False) last_name = models.CharField(max_length=150, editable=False) # 이름 입력창 name = models.Ch..
-
[Django] 사용자 app 생성하기 _Mac파이썬/Django 2022. 12. 27. 01:50
모델 커스텀하기 사용자가 컨트롤할 수 있는 부분을 특정하는 것을 모델 커스텀이라고 한다. 예를 들어, 사용자가 로그인할 때에는 비밀번호가 아니라 소셜 로그인으로만 가능하도록 한다던가, 프로필 이미지를 추가한다던가, 포스트의 경우 열람만 가능하고 삭제는 할 수 없게 한다던가 하는 것들이 그것이다. User Model 커스텀하기 코드 컨벤션을 위한 black 설치하기 black이란? Python Formatter 코드 통일 및 재사용을 위해 code convention을 진행하고 code style이나 format을 설정한다. 여기서 black은 파이썬 코드 스타일인 pep8에 따라 코드를 자동으로 포맷해준다. pip3 install black users의 app 생성하기 python manage.py s..