채야미의 코드레시피🍳

Dev/Django

Dev/Django
SNS 로그인 오류 문제 카카오, 네이버, 구글 세 개 중 하나로 소셜로그인을 하고, 다른 계정으로 로그인하려고 할 시에 500 에러가 발생 예를 들어 카카오 로그인 > 로그아웃 > 구글 로그인을 하면 카카오 로그인은 정상적으로 작동하나 구글 로그인 시 500 에러, 이후 카카오 외에 어떤 로그인도 안 됨 데이터베이스를 삭제하고 반대로 다시 시도하면(구글 로그인 > 로그아웃 > 카카오 로그인) 구글 로그인만 됨 원인 에러코드 분석하기 HTTP GET /user/login/kakao/ 200 [0.01, 127.0.0.1:54412] Internal Server Error: /user/login/kakao/ Traceback (most recent call last): File "C:\Users\SCY\D..
Dev/Django
친구추가 기능 구현하기 이번에 구현하고 싶었던 것은 친구추가 기능이다. 기존 팔로우, 팔로워랑은 다르게 관계가 언제나 쌍방이라는 차이점이 있고,신청 후 수락하는 과정이 필요하다. 일단 팔로우 할 때 했던 대로 ManyToMany필드를 만들었는데 friends = models.ManyToManyField("self", related_name='friends', blank=True) 이러면 일방이고 쌍방이고를 정하기도 전에 신청 > 수락이 되질 않는다. 실행되면 바로 DB가 업데이트 되어버리기 때문 그래서 기존 팔로우에 한 단계(신청)가 더 있는 만큼, 중간 테이블을 하나 추가하기로 했다. ManyToMany필드 때문에 생기는 테이블이 친구상태(누구와 누가 친구인지) 테이블이므로 친구신청상태 모델을 새로 만..
Dev/Django
DRF 프로젝트 - 이메일 인증 구현하기 이번 프로젝트에서 구현해야 하는 기능중에 꽤 생소한 이메일 인증 1,2 일차에 기본적인 백엔드 코드를 완성시켜뒀기 때문에 오늘 다 같이 이메일 인증에 도전하기로 했다. 5명이서 각자 해보고, 괜찮은 것을 고르거나 합쳐서 보완해 사용하기로 결정 이것저것 찾아보다가 장고에서 제공하는 EmailMessage 모듈이 있다는 것을 알았다. 이 모듈을 쓰면 SMTP를 이용해 이메일을 보낼 수 있당. 👇참고한 블로그👇 https://ssungkang.tistory.com/entry/entry/Django-회원가입-시-이메일-인증-SMTP [Django] 회원가입 시 이메일 인증, SMTP SMTP SMTP 는 Simple ..
Dev/Django
장고 실무 심화 3주차 : 회원기능 drf에서 jwt사용하기 (simplejwt) https://django-rest-framework-simplejwt.readthedocs.io/en/latest/ Simple JWT — Simple JWT 5.2.2.post16+gf298efa documentation Simple JWT provides a JSON Web Token authentication backend for the Django REST Framework. It aims to cover the most common use cases of JWTs by offering a conservative set of default features. It also aims to be easily extens..
Dev/Django
알고리즘 문제풀이 - 페어프로그래밍 👇 문제 : 문자열 정렬하기 (1) 👇 더보기 더보기 문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요. 제한사항 1 ≤ my_string의 길이 ≤ 100 my_string에는 숫자가 한 개 이상 포함되어 있습니다. my_string은 영어 소문자 또는 0부터 9까지의 숫자로 이루어져 있습니다. # isdigit 사용 def solution(my_string): nums = [] for i in my_string: if i.isdigit(): nums.append(int(i)) return sorted(nums) # isnumeric 사용 def ..
Dev/Django
팔로우/팔로잉 기능 구현 필드 만들기 좋아요와 마찬가지로 ManyToMany 이지만 다른 점은 UserModel을 Self 로 참조하는 필드라는 것 class UserModel(AbstractUser): # UserModel에서 AbstractUser(장고기본유저모델)를 사용하겠다 class Meta: db_table = "my_user" # 여기는 테이블 이름이에요! 꼭 기억 해 주세요! # 기본 모델에 없던 것만 추가 (닉네임, 프로필이미지) nickname = models.CharField(max_length=15, default='') user_img = models.FileField("프로필이미지",upload_to='',blank=True,null=True,validators=[MaxValue..
Dev/Django
좋아요 기능 구현 좋아요 필드 만들기 작성했던 ERD 다시 확인해보면 계정 1 : M 좋아요 M : 1 게시글 형태이기 때문에 아무래도 좋아요 필드는 게시글(Post Model)과 계정(User Model)을 ManyToMany로 연결하는 필드여야겠다는 판단 👉 like_users 필드 추가 # post/models.py class Post(models.Model): class Meta: db_table = "my_posting" post_author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='posts') # 글 작성자 : 유저 모델의 사용자를 상속받습니다. post_title = models..
Dev/Django
글쓰기 페이지에 이미지 업로드 기능 세팅하기 urls.py (프로젝트 폴더) urlpatterns = [] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) settings.py (프로젝트 폴더) 맨 아래 즈음 MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') models.py > 게시글 모델 post_img = models.FileField("이미지", upload_to='',blank=True, null=True) 이미지 업로드하고 로드하기 views.py > 글 작성 함수 post_img = request.FILES.get('post_img') # 이미지 업로드 ..
Dev/Django
파이썬 장고 실무 기초 3주차 10강 게시글 쓰기 글 작성할 html 게시글 쓰기 - POST 방식 글을 저장할 곳 - tweet 테이블 👉 form 태그에 action과 method를 사용해서 django의 url로 연결 templates/tweet/home.html 나의 이야기를 적어주세요 {% csrf_token %} 작성하기 csrf token의 자세한 원리가 궁금해서 좀 찾아봤다. 👇👇 더보기 POST 요청에 대해서만 csrf token을 발급하고 체크한다. CsrfViewMiddleware는 MIDDLEWARE 설정에서 기본적으로 활성화 되어있다. csrf token 발급(사용자가 로그인할 때마다 값이 변경됨) view가 호출되기 전 csrfmiddlewaretoken 유효성 검증 POST 양..
Dev/Django
파이썬 장고 실무 기초 3주차 1~9강 우리가 만든 User모델 업그레이드 하기 bio = models.CharField(max_length=256, default='') models.Model 자리에 AbstractUser를 사용 상속받듯이 기존 데이터베이스에 없던 속성만 추가해서 생성 #user/models.py from django.db import models from django.contrib.auth.models import AbstractUser # Create your models here. class UserModel(AbstractUser): # UserModel에서 AbstractUser(장고기본유저모델)를 사용하겠다 class Meta: db_table = "my_user" # 여기..
Dev/Django
파이썬 장고 실무 기초 2주차 프로젝트 구조 만들기 프로젝트 구조 만들기 sns 앱의 기능은 크게 세 가지로 나눌 수 있다. 사용자 관리 (회원가입 / 로그인 / 로그아웃) , 글쓰기, 친구 만들기 이걸 다시 나누면 사용자 , 글로 나눌 수 있으므로 이 두 기능을 하는 앱을 만든다. 👉 User : 사용자 관리 ( 회원가입/로그인/로그아웃) 👉 Tweet : 글 관리( 글쓰기, 삭제, 수정, 댓글) $ django-admin startapp user $ django-admin startapp tweet 프로젝트 세팅하기 mySpartaSns/mySpartaSns 폴더 : 이 프로젝트를 관리하는 모든 정보들을 갖고 있는 곳 mySpartaSns/mySpartaSns/settings.py : Django가 ..
Dev/Django
파이썬 장고 실무 기초 1주차 파이썬 웹 프레임워크 웹 프레임워크? 프레임워크는 개발을 도와주는 하나의 틀 👉 결과물을 일정한 형태로 만들 수 있도록 도와줌 👉 때문에 우리가 비슷한 방법과 방식으로 완성 된 형태를 만들 수 있음 파이썬 웹 프레임워크의 종류 - 최소한의 기능만 제공하는 형태 서버를 만들기 위한 최소한의 기능들만 제공하는 철학을 가지고있는 프레임워크들입니다. ex) Flask - 이미 많은 기능들을 제공하고 있는 형태 웹서비스에 공통적으로 필요한 부분들이 미리 구현되어 있습니다. ex) Django Django 알아보기 장고의 MVT 패턴 - M (Model) - 데이터베이스의 모델 (ORM) - 저장되고 사용되는 데이터의 형태 - T (Template) - 사용자에게 보여지는 부분 - 화..
ChaeYami
'Dev/Django' 카테고리의 글 목록