일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 장고란
- 엑셀
- string 메소드
- string 함수
- 매크로
- 구조체와 클래스의 공통점 및 차이점
- vscode
- getline
- 입/출력
- Django Nodejs 차이점
- correlation coefficient
- 프레임워크와 라이브러리의 차이
- 2557
- 입출력 패턴
- UI한글변경
- Django란
- Django의 편의성
- EOF
- iOS14
- c++
- 알고리즘 공부방법
- k-eta
- scanf
- 백준
- 시간복잡도
- double ended queue
- 이분그래프
- 연결요소
- 표준 입출력
- 자료구조
- Today
- Total
목록웹개발/인스타 클론 (1) Django (30)
Storage Gonie
ㅁㄴㅇ
아래의 작업은 images앱의 admin.py에서 이뤄진다. # Admin 패널에 Image, Comment, Like 모델 추가 - '@~'는 decorator라고 부르는 것인데, 이것을 통해 Admin 패널에 등록이 되고 보여진다. from django.contrib import admin from . import models # Register your models here. @admin.register(models.Image) class ImageAdmin(admin.ModelAdmin): pass @admin.register(models.Comment) class CommentAdmin(admin.ModelAdmin): pass @admin.register(models.Like) class Li..
아래의 작업은 users앱의 models.py에서 이뤄진다. # User 모델에 followers, following 필드 추가 - followers, following 필드는 ManyToMany 관계이기 때문에 여러명의 사용자를 가질 것이고, User 모델에 연결될 것이므로 자신을 참조하게 되므로 "self" 속성이 들어간다. class User(AbstractUser): """ User Model """ # First Name and Last Name do not cover name patterns # around the globe. name = models.CharField(_("Name of User"), blank=True, max_length=255) # Constant GENDER_CHOIC..
아래의 작업은 images앱의 models.py에서 이뤄진다. # images 앱에 Like 모델 추가 from ..users import models as user_models class Like(TimeStampedModel): """ Like Model """ creator = models.ForeignKey(user_models.User, null=True, on_delete=models.CASCADE) image = models.ForeignKey(Image, null=True, on_delete=models.CASCADE) # Image 모델에 ForeignKey로 creator 필드 추가 class Image(TimeStampedModel): """ Image Model """ file = ..
one to many 혹은 many to one 관계 - ForeignKey를 이용해야함 # 이 관계가 사용되는 예시 - 한 명의 주인이 여러마리의 고양이를 소유하는 경우 - 한 명의 사용자가 여러개의 사진을 올릴 수 있는 경우 - 한명의 사용자가 여러개의 댓글을 소유하는 경우 = 댓글 여러개가 한명의 사용자를 가지는 경우 - 한 개의 사진이 여러개의 댓글을 갖는 경우 - 한개의 사진이 여러개의 좋아요를 갖는(받은) 경우 # 모델을 이용한 이해 - 한명의 주인이 여러마리의 고양이를 소유하는 경우를 모델로 설계하면 아래와 같음 1. Owner 모델 정의 from django.db import models class Owner(models.Model): name = models.CharField(max_le..
# Abstract base class 란 무엇인가 - Abstract base class 는 모델이기는 하지만, 데이터베이스 테이블을 생성하지 않으며, 공통된 field를 자식한테 물려주는 목적으로 사용된다. 즉, 중복 코딩을 제거하기 위해 사용함. - django.db.models.Model 을 상속받아 만들어지는 모델이며(단, 테이블 생성X), 다른 클래스들이 공통적으로 가지게할 field를 정의한 뒤, Abstract base class 임을 구분하기 위해 내부에 Meta class를 정의하고 거기에 abstract = True를 넣어줘야 한다. (Meta 클래스에는 부가적인 설명 정보가 들어간다. 여기에 적는 것은 field가 아님) - 이전 장에서 User 모델을 만들 때 사용된 Abstrac..
디폴트로 생성되어있는 users앱의 User 모델 설명 - Cookiecutter로 프로젝트를 생성했다면 users앱이 디폴트로 생성되어 있을 것이고, 그 밑의 models.py 파일을 살펴보면 User모델이 정의되어 있는 것을 볼 수 있을 것이다. 이 모델은 허가된 사람들 즉, 회원가입한 사람들의 정보를 저장하는 것으로 사용된다. 이것에 사용되는 모델은 settings/base.py에서 디폴트로 지정되어 있는 것인데 이를 변경할 수 있기도 하다. (이는 그대로 두며, 기존의 것을 확장하여 사용할 것임) from django.contrib.auth.models import AbstractUser from django.db import models from django.urls import reverse ..
# 서버 실행 후 admin 패널 페이지 접속 - http://localhost:8000/admin/ # admin 패널 접속을 위한 super user 생성 - 터미널에서 아래의 명령문을 실행한뒤, Username, Email, Password을 입력한다. - 그 다음 생성한 계정으로 admin 패널을 로그인해보자 python manage.py createsuperuser
# Migration 이란 - database models의 모양을 바꾸기 위한 처리이다. - 모델 혹은 필드를 변경하게 된다면 무조건 마이그레이션을 해줘야 한다. - 새로운 모델을 만들거나 모델을 수정하면 데이터베이스는 이를 모르기 때문이다. 따라서, 마이그레이션을 해줘야 데이터베이스를 업데이트 해줄 수 있다. # 정의했던 모델을 수정하여 필드를 추가한 경우 - 모델을 기존의 정의에서 수정했다면 다음 항목에서와 같이 마이그레이션을 수행해줘야 DB에 반영이 된다. from django.db import models class Cat(models.Model) name = models.CharField(max_length = 30) breed = models.CharField(max_length = 20) ..
장고의 Models - Model은 Python 클래스이다. - Model은 앱에서 사용되는 데이터의 타입을 설명해준다. - 장고는 자동으로 Model을 번역해서 Database에 Table을 생성한다.(ORM) - https://docs.djangoproject.com/en/1.11/topics/db/models/ - 레스토랑 장고 프로젝트를 진행한다면, Costumer 모델과 Restaurant 모델은 기능이 완전히 다르기 때문에 다른 앱에 넣어줘야 한다. # Fields란 무엇인가 - Fields는 장고와 DB에게 어떤 종류의 데이터를 저장할 것인지 알려준다. - 나이는 숫자, 이름은 텍스트. 이런게 장고의 field이다. - Fields는 잘못된 입력을 저장하려고 할 때 알려주기도 한다. ex) ..