목록Skill/Django (21)
여름의 서재
💡 왜 기존의 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..
📄 유저 시나리오 - Update (회원정보수정) 1. 회원정보 수정 버튼을 누른다. 2. 기존의 데이터와 함께 회원정보 수정 폼이 담긴 update 페이지가 나온다. 3. 정보를 수정하고 체줄 버튼을 누른다. 4. 정상적으로 수정이 완료되면 메인 페이지로 이동한다. - delete (회원탈퇴) 1. 회원 탈퇴 버튼을 누른다. 2. 로그아웃 된채로 메인페이지로 이동한다. 🔨 기능 구현하기 1) urls : accounts앱에 update, delete라는 이름의 주소 생성 from django.urls import path from . import views app_name = 'accounts' urlpatterns = [ path('login/', views.login, name='login'), p..