분류 전체보기 152

JSON Web Token, JWT

Session & Cookie⭐ 쿠키 (Cookie)웹 브라우저와 요청과 응답을 주고받을때 사용하는 데이터 조각쿠키는 도메인에 제한적이며 유효기간이 정해져있음Auth 외에도 다양한 방식으로 활용 (광고...?)⭐ 세션 (Session)stateless한 HTTP 특징을 보완하기 위한 방법세션 DB를 이용해서 유저의 정보를 기억하며 Session ID라고 하는 랜덤한 Key를 쿠키에 담아서 Auth에 활용쿠키를 사용해서 Session ID를 주고 받는 것  JSON Web Token, JWT: 쿠키는 웹 브라우저에만 존재. 어플 등 다양한 장치와 소통 필요! Token은 간단히 말해 랜덤하게 생긴 문자열이며, 일정한 규칙을 가지고 있고 간단한 서명을 더한 문자열로 토큰 자체에 유저에 대한 간단한 정보가 들..

Web/Django 2024.08.30

Serializer 활용하기

1. Article에 Comment 추가하기 : 모델 사이에 참조 관계가 있다면 해당 필드를 포함하거나 중첩할 수 있음 결국 우리가 조작해줘야할 것: Serializer현재 Article → Comments 접근이 필요 == 역참조역참조시 사용할 수 있는 comment_set 이 있으나 우리는 comments 로 명명from rest_framework import serializersfrom .models import Article, Commentclass CommentSerializer(serializers.ModelSerializer): class Meta: model = Comment fields = "__all__" read_only_fields = ("..

Web/Django 2024.08.29

Relationship과 DRF(with. particular seed)

django-seed에서 앱이 아니라 특정 모델만 지정해서 댓글 만들기!https://github.com/Brobin/django-seed python manage.py seed articles --number=20 --seeder "Comment.article_id" 2 Comment 만들어보기models.pyclass Comment(models.Model): article = models.ForeignKey( Article, on_delete=models.CASCADE, related_name="comments") content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) upda..

Web/Django 2024.08.29

DRF CBV

Class Based View 특징클래스형 뷰에서는 특정 Http Method에 대한 처리를 함수로 분리할 수 있음→ GET요청에 대한 처리는 get()에서, POST 요청에 대한 처리는 post()에서 정의 가능 Class Based View 종류APIView - DRF CBV의 베이스 클래스GenericAPIView일반적인 API 작성을 위한 기능이 포함된 클래스보통 CRUD 기능이 대부분인 상황을 위해 여러가지 기능이 미리 내장됨Mixin재사용 가능한 여러가지 기능을 담고있느 클래스말그대로 여러 클래스를 섞어서 사용하기 위한 클래스ListModelMixin - 리스트 반환 API를 만들기 위해 상속 받는 클래스CreateModelMixin - 새로운 객체를 생성하는 API를 만들기위해 상속 받는 클..

Web/Django 2024.08.29

Django Seed(Response와 Serializer)

0. 기초작업api_pjt 라는 이름의 프로젝트를 생성articles 앱을 생성하고 기본적인 url 구조를 만듦/api/v1/articles/로 들어오면 articles 앱의 urls로 연결articles 앱의 models.py를 작성Artcile 모델 클래스를 작성하고 아래 필드를 포함titlecontentcreated_atupdated_at조회를 하려면 데이터가 필요Django Seed :→ 매번 create하는 것도 너무 힘들기에 자동으로 많이 생성해주는 라이브러리 installpip install django-seed→ freeze !settings.pyINSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "djang..

Web/Django 2024.08.29

파이썬 함수(is, ==의 차이/ 바다코끼리/ suppress[try catch] / big num)

1. str# add_string_by_plus 주소가 계속 바뀜add_string_by_plus = ""for i in range(50): add_string_by_plus += str(i)print(add_string_by_plus)---------------------------------#좀더 최적화된 방식import ioadd_string_by_plus = io.StringIO()for i in range(50): add_string_by_plus.write(str(i))string_by_plus = add_string_by_plus.getvalue()print(string_by_plus)  2. try catch와 contextlib.suppress filename = "타겟.jpg..

파이썬 2024.08.29

장고 TemplateSyntaxError

아래와 같은 오류가 뜬다면 두가지를 체크해보자TemplateSyntaxError at /instagram/new/ Invalid block tag on line 34: 'endblock', expected 'elif', 'else' or 'endif'. Did you forget to register or load this tag?  1. static 파일을 불러오는 html 각 상단에 {%load static%}이 있는지 확인.(base.html에 있어 상속 받는다 해도 각 html에 또 추가해야함.) 2. 코드 내용 중, 주석 처리를 이런식으로 한 내용 중 안에 if문이 있으면 주석 삭제.는 장고 문법이 아니어서 안의 내용을 인식할 수 있음. comment태그 사용 권장.

Web/Django 2024.08.28

git 협업시 메뉴얼

- 새 클론을 받거나, 폴더를 다 지우고 다시 클론을 받을 경우 처음 구축환경1. clone2. python -m venv venv3. source venv/Scripts/activate4. pip install -r requirements.txt- 코드 개발 하기 전 사전 세팅git switch main(혹은 머지하는 곳)git pullgit switch (자기 브랜치)git merge maingit push코드 작업하기 전 자기 브랜치인지 꼭 확인하기!!!- 개발해서 Pull request하는 경우깃헙 사이트 가서 pull request 생성충돌 안나면 그대로 만들고충돌 난다고 하면,1. 코드로 돌아와서 git switch main(혹은 머지하는 곳)2. git pull3. git switch (자기..

etc/잡다한 것 2024.08.27

Anaconda 가상환경 설정

0. 매 프로젝트마다 venv설치하는 것이 프로그램이 무거워져서 Anaconda를 이용 1. 아나콘다 설치 후, 아나콘다 네비게이터 실행2. Enviroments 탭에서 가상환경을 대체하는 환경을 Create함.3. 만든 환경 선택4. [Ctrl] + [Shift] + [P]을 눌러 자신이 사용할 anaconda 환경에 설치된 python.exe 선택    5. 자신의 프로젝트로 가서 가상환경을 anaconda로 바꿈 위와같이 하면 venv없이 사용가능. (마찬가지로 anaconda환경에 pip install -r requirements.txt 등 인스톨은 해야함)

Web/Anaconda 2024.08.26