본문 바로가기

web

(198)
django rest_freamework에서 리턴값을 json으로 보내자. 1. 모든 API를 json으로 리턴한다 가장 쉽고 빠른 방법. Settings.py 에 세팅하면 자동으로 json으로 리턴합니다. REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ) } 단 위의 방법은 모든 API에 대하여 json 형식으로 대응됩니다. 즉 rest_freamework에서 지원하는 템플릿을 사용할 수 없습니다. 2. depoly 따라 설정하고 한다. 예를 들어 개발 및 test 일 경우엔 setting_develop.py로 만들어서 REST_FRAMEWORK의 옵션을 설정하지 않는 방식입니..
django query 4 OneToOne 관계일때는 annoying의 AutoOneToOne을 사용하자. https://uiandwe.tistory.com/1225 View에서의 쿼리 사용 방법 Django의 쿼리는 마지막까지 지연(lazy)된다 Django의 쿼리셋(queryset)은 데이터베이스의 여러 레코드(row)를 나타냅니다. person_queryset = Person.objects.filter(first_name="uiandwe") 이 코드는 DB에 어떤 쿼리도 전달하지 않습니다. 여러분이 person_queryset에 필터를 추가하거나 person_queryset을 함수에 전달한다 해도, 이는 DB에 아무런 메시지도 전달하지 않습니다. 왜냐하면 DB에 쿼리를 전달하는 일은 웹 애플리케이션을 느려지게 하는 주범 중 ..
django query 기초 3 1. select_related and prefetch_related 모델 정의 class Company(models.Model): name = models.CharField(max_length=30) phone_num = models.CharField(max_length=30) floor = models.PositiveIntegerField(default=1) def __str__(self): return "{} {} {}".format(self.name, self.phone_num, self.floor) class Employee(models.Model): name = models.CharField(max_length=30) age = models.PositiveIntegerField(default=..
django query 기초2 일반 ORM 모델 정의 class Country(models.Model): name = models.CharField(max_length=30) class City(models.Model): name = models.CharField(max_length=30) country = models.ForeignKey(Country, on_delete=models.CASCADE, relatec[ame='cities') population = models.PositiveIntegerField() 데이터 추가 >>> temp = ["Brazil","Turkey","Italy","Bangladesh","Canada","France","Peru","Argentina","Nigeria","Australia","Iran",..
django query 기초1 모델 정의 class Product(models.Model): name = models.CharField(max_length=30) price = models.IntegerField(default=0) stock = models.IntegerField(default=0) Create >>> from polls.models import Product >>> p = Product(name="coffee", price=4000, stock=1) >>> p.save() >>> p = Product(name=“water", price=1000, stock=10) >>> p.save() >>> p = Product(name=“chocolate", price=5000, stock=20) >>> p.save() bul..
[django] 데이터베이스 여러개 사용하기 (django multi db) 기존 MSA 형태로 구축되어 API를 호출하던 방식을 직접 디비에 붙어서 수행하는 형식으로 바꾸기 위해 django에서 두개 이상의 디비를 바라보도록 하는 과정에서 글을 씁니다. (..왜 MSA에서 모놀리스로 가냐고 물으신다면.... 한시간에 1만개의 내부 API 콜을 견뎌야 하는데....돈이 없습니다. ㅜㅡㅜ) 1. settings에 디비 정보 추가 settings에 기존 디비 설정이 있는 DATABASES에 추가로 이용할 디비의 정보를 넣어줍니다. 저의 경우 predict라는 이름으로 추가정보를 넣었습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', ..
django cross domain allow middleware 도저히 django-cors-headers 가 설치 되지 않아서 미들웨어로 처리 했다. (이유는 아직도 모른다.) from django import http try: import settings XS_SHARING_ALLOWED_ORIGINS = settings.XS_SHARING_ALLOWED_ORIGINS XS_SHARING_ALLOWED_METHODS = settings.XS_SHARING_ALLOWED_METHODS XS_SHARING_ALLOWED_HEADERS = settings.XS_SHARING_ALLOWED_HEADERS except: XS_SHARING_ALLOWED_ORIGINS = '' XS_SHARING_ALLOWED_METHODS = ['POST', 'GET', 'OPTIONS'..
django migrate 칼럼이 생성 안될때 ( 꼬였을때) 로컬과 실서버의 디비의 migrate가 꼬여서 개발한 컬럼이 반영이 안될때!! 컬럼은 처음부터 소스에 반영이 아닌 8번에서 반영되어야 합니다!! (git으로 잠시 stash로 넣어놨다가 8번에서 꺼내세요) 1. 해당 디비의 django_migrations 테이블 데이터 삭제 (truncate) 2. python3 manage.py makemigrations 3. python3 manage.py showmigrations 4. python3 manage.py migrate --fake components ( "django_content_type" 에 name 이 없다고 에러가 나면 하단을 참조하세요.) 마이그레이션 파일 삭제 5. find . -path "*/migrations/*.py" -not -nam..