Sangjun 개발 블로그
    • 카테고리
    • Algorithm
    • apple
    • AWS
    • boto3
    • cron
    • crontab
    • DB
    • Django
    • Docker
    • facebook
    • fcm
    • Go
    • google
    • Gopacket
    • Gui
    • Guide
    • kakao
    • Learning
    • LeetCode
    • Linux
    • logging
    • mariaDB
    • Models
    • MSSQL
    • naver
    • NFS
    • Numpy
    • oauth
    • Opencv
    • PostgreDB
    • pytest
    • Python
    • Sniff
    • Swagger
    • Windows
    • Windows10
    • WSL
    Hero Image
    Django json 데이터 반환하기

    api 서버 등 json 데이터로 통신하는 서버에서 사용할 수 있는 예제이다. 1. 사전 설정 프로젝트 생성 후 user 앱의 User 모델을 생성한다. 임의의 user 데이터를 2개 등록한다. models.py class User(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=20, unique=True) 2. 사용 예시 2.1. QuerySet(Model Instance)을 json형태로 변환할 경우 .all() serializers.serialize('json', value_name) 함수를 사용하여 json 형태로 변환시킨다. views.py from django.core import serializers res_data = User.objects.all() # <QuerySet [<User: User object (1)>, <User: User object (2)>]> res_data = serializers.

    April 20, 2021 Read
    Hero Image
    Django model 참조 객체 호출하기

    1. 정참조와 역참조 객체 호출 데이터베이스의 임의의 테이블로 User, Occupation 생성한다. 두 테이블은 User 모델의 객체가 Occupation 모델의 객체를 N:1 참조관계를 가진다. models.py 설정 class User(models.Model): name = models.CharField(max_length=50) age = models.IntegerField() job = models.ForeignKey('Occupation', on_delete=models.CASCADE) class Occupation(models.Model): name = models.CharField(max_length=50) 2. 정참조 객체 호출하기 user1 객체가 Occupation 모델을 참조키(ForeignKey)로 정참조하여, Occupation 모델의 속성을 사용할 수 있다. user1 = User.objects.get(id = 1) user1.job.name >>> 'Developer' 3. 역참조 객체 호출하기 역참조 관계에서는 정참조와 같이 바로 참조한 모델의 속성을 사용할 수 없다.

    April 7, 2021 Read
    Hero Image
    Django 동적 모델 및 테이블 생성

    1. Django 동적 모델 및 테이블 생성 django는 makemigrations, migrate 명령어를 통하여 테이블 생성한다. 이때 웹서버는 실행중일 경우 중단하고 다시 재시작한다. 운영환경에 따라서 웹서버가 중단되지 않고 운영이 필요한경우에는 위의 방법이 아닌 동적 모델 및 테이블 생성방법이 필요하다. 2. 예시코드 2.1. 상속받을 추상모델 작성 models.py from django.db import models class Board(models.Model): title = models.CharField(max_length=100) contents = models.CharField(max_length=500) class Meta: abstract = True 2.2. 동적 모델 생성 및 삭제 from .models import Board TABLE_MAP = {} def create_model(name: str): ''' 동적 모델 생성 ''' baseclass = Board tablename = board2 # attrs 를 dict 형태로 지정한다.

    April 7, 2021 Read
    Hero Image
    Django QuerySet 객체 접근방식 및 조회

    1. QuerySet 이란? Database에서 응답받은 결과 목록(list)으로 Python 코드가 SQL 구문으로 맵핑(mapping)되고 DB로 전달하여 받은 응답값을 QuerySet 자료형으로 반환한다. 2. 사전설정 django version : 3.2 models.py from django.db import models class User(): name = models.CharField(max_length=20) age = models.models.PositiveSmallIntegerField() >>> python manage.py shell #shell 실행 >>> from user.models import User #모델클래스 임포트 >>> user1 = User(name='Foo', age=15) # 데이터추가 >>> user1.save() # 데이터 저장 >>> user2 = User(name='Bar', age=20) # 데이터추가 >>> user2.

    April 6, 2021 Read
    Hero Image
    Django models AutoOneToOneField 사용법

    model 상속할때 테이블 컬럼 데이터 자동 생성방법 라이브러리 설치 pip install django-annoying models 설정 django의 models.OneToOneField는 데이터 변경없이(default 설정) 저장하면 해당 데이터(row)가 생성되지않음 models.AutoOneToOneField는 데이터가 default값이어도 데이터(row) 생성됨 from annoying.fields import AutoOneToOneField # User모델 Save에서 제어 class User(models.Model): name = models.CharField(max_length=30) def save(self): is_new = False if self.pk is None: is_new = True if is_new: Profile.objects.create(user=self) class Profile(models.Model): user = AutoOneToOneField(User, primary_key=True) home_page = models.URLField(max_length=255, blank=True) icq = models.IntegerField(blank=True, null=True) 참고사항 문제점 : TypeError: __init__() missing 1 required positional argument: 'on_delete' 에러 발생

    March 31, 2021 Read
    바로가기
    • About
    • Recent Posts
    Contact me:
    • sangjuncha.dev@gmail.com

    Toha Theme Logo Toha
    Copyright 2020. SangjunCha all rights reserved.
    Powered by Hugo Logo