목록Skill (40)
여름의 서재

💡 왜 기존의 sqlite3가 아닌 postgreSQL을 이용할까? : sqlite3로도 충분히 장고 공부가 가능하지만 이건 로컬용으로 적합하다. 그래서 규모가 커지는 웹 프로젝트를 하기 위해서는 다른 DBMS를 이용해야 한다. 그 중에서도 postgreSQL를 이용한 이유는 무료인데 기능과 성능면에서 매우 훌륭한 DBMS이기 때문이다. 이제부터 postgreSQL을 설치하고 python으로 연동하는 과정을 순서대로 나열할것이다. 고대로 따라하기만 하면 된다! # 1. postgreSQL 설치하기 https://www.postgresql.org/ PostgreSQL The world's most advanced open source database. www.postgresql.org 1. 사이트에 들어가..

💡 todo 리스트 : 기존의 게시판과 비슷하지만 완료 상태를 의미하는 필드가 추가가 된다. 🔧 todo 리스트 구현하기 1. 앱생성 : todos라는 새로운 app을 만든다. settings에 등록도 필수! python manage.py startapp todos # config/settings.py INSTALLED_APPS = [ # Custom apps 'todos', # 등록!! 'accounts', # Third-party libraries # Django core packages 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib..
💡 User와 Follow는 무슨 관계일까? : 한 사람이 여러 사람을 팔로우할 수 있고, 한 사람이 여러 사람에게 팔로우를 당할 수 있다. 즉, user 테이블끼리의 N:N 관계가 된다. 🔧 좋아요 기능 구현하기 1. accounts/models.py : 자기가 자기자신을 다시 참조하는 것이기 때문에 self 라는 인자를 준다. symmetrical은 대칭을 할지 말지를 결정하는 건데 여기서 이 옵션에 True를 주면 한 사람이 어떤 사람을 팔로우하면 저절로 맞팔이 되게 된다. 그렇기 때문에 여기서는 False로 줄 것이다. from django.db import models from django.contrib.auth.models import AbstractUser # Create your model..
💡 Article과 Like는 무슨 관계일까? : 한 게시글은 여러명에게 좋아요를 받을 수 있다. 또한 한 사람은 여러개의 게시글에 좋아요를 할 수 있다. 즉, Article과 Like_user는 N:N 관계를 가진다. 🔧 좋아요 기능 구현하기 1. articles/models.py : ''유저는 게시글을 좋아한다.'' 여기서 table은 유저 테이블과 게시글 테이블이 사용되고 중간에 좋아요라는 행위가 중개테이블이 된다. 그래서 Article model에 user 테이블과 연결하는 like_users라는 이름의 manytomany 필드를 만들어야 한다. 이때, 꼭! related_name을 설정해줘야 한다. 그렇지 않으면 게시글을 작성한 유저를 나타내는 user 필드의 매니저와 충돌하게 된다. 둘다 us..
💡 Article과 Comment는 무슨 관계일까? : 한 게시글에 여러개의 댓글이 달릴 수 있다. 하지만 한 댓글이 여러개의 게시글에 달릴 순 없다. 즉, Article과 Comment는 1:N 관계를 가진다. 🔧 댓글 기능 구현하기 1. articles/models.py : 새로운 댓글 테이블을 만들어야 한다. comment 테이블에서 ForeignKey를 이용해 관계설정을 해주자. article의 기본키를 외래키(article 필드)로 만들어준다. on_delete옵션은 게시글이 사라지면 댓글도 같이 사라지도록 하기 위해 CASCADE로 지정한다. 📌 on_delete 종류 1. CASCADE : ForeignKeyField가 바라보는 값이 삭제될 때 ForeignKeyField를 포함하는 모델 인..
💡 Article과 User는 무슨 관계일까? : 한 명이 여러개의 게시글을 작성할 수 있다. 하지만 한 게시글을 여러명이 작성할 수는 없다. 즉, Article과 User는 N:1 관계를 가진다. 🔧 게시글에 User 정보 넣기 1. articles/models.py : Article 테이블에 user 테이블과 N:1 관계를 형성하는 user 필드(ForeignKey)를 넣는다. 여기서, user 필드는 user 모델을 직접 참조하지 않고, settings.AUTH_USER_MODEL 을 이용해야 한다. 📌 settings.AUTH_USER_MODEL ? get_user_model()? : 둘다 User 모델을 가르킨다. settings.AUTH_USER_MODEL은 models.py에서 User모델을..
💡 User 모델을 왜 커스텀해야할까? 1. 일부 프로젝트에서는 Django의 내장 User 모델이 제공하는 인증 요구사항이 적절하지 않을 수 있음 ex) username 대신 email을 식별 토큰으로 사용하는 것이 더 적합한 사이트 2. Django는 기본 사용자 보델이 충분하더라도, 커스텀 유저 모델을 설정하는 것을 강력하게 권장! (프로젝트에서 첫 migrations, migrate를 하기 전에 커스텀 유저 모델을 만들어 놔야함!! 중간에 변경 X) 🔧 Custom User 모델 만들기 1. accounts/models.py : AbstractUser을 상속받아 커스텀 User 모델을 만든다. from django.contrib.auth.models import AbstractUser # Crea..
💡 find : 찾으려는 문자가 문자열의 어디에 있는지 인덱스를 반환 -> find(찾을 문자, [찾기 시작할 위치], [찾기를 끝맺을 위치]) alphas = 'ABCABC' idx = alphas.find('C') print(idx) # 2 * 만약 찾으려는 문자가 없다면 에러가 아닌 -1을 반환 - 검색 시작 위치 지정 가능 alphas = 'ABCABC' idx = alphas.find('A', 2) print(idx) # 3 - 뒤에서부터 찾기 가능: rfind(찾을 문자, [찾기 시작할 위치], [찾기를 끝맺을 위치]) alphas = 'ABCABC' idx = alphas.rfind('A') print(idx) # 3 💡 startwith, endwith - startwith(시작하는 문자,..