Server/Django issue 14

[Django] TextChoices

Enum과 같이 Case를 나눈는 경우 사용한다. 사용하는 방식은 구글에 널려 있는데 사용할 때 실용적으로 정리가 되어 있지 않아 정리한다. - 변수는 django에서 사용한다. - 중간 문자열은 DB에 저장되는 데이터이다. - 마지막 문자열은 관리자 페이지에서 사용한다. class CarrierCase(models.TextChoices): # 택배사 # django에서쓸 변수 = 'DB 저장 문자열', '관리자 페이지 쓸 문자열' blank = '', "없음" chunilps = "kr.chunilps", "천일택배", cjlogistics = "kr.cjlogistics", "CJ대한통운", cupost = "kr.cupost", "CU 편의점택배", cvsnet = "kr.cvsnet", "GS P..

Server/Django issue 2022.11.24

[Django] AWS S3 연동

우선 AWS S3를 장고에서 사용하기 위한 기본 셋팅을 포스팅 해두었다. https://yeongwoo-cho.tistory.com/309 [AWS] S3(Simple Storage Service) 일반적으로 API 서버에서 이미지 서버를 따로 두고 사용하며, 대표적으로 AWS S3 Service를 사용한다. AWS S3를 이미지 서버로 구축하고 연동하는 방법에 대해 알아보자. AWS S3의 단위: Burket 미디어, 정 yeongwoo-cho.tistory.com Django Setting django에서 S3를 연동 시키기 위해서는 두가지 라이브러리가 필요하다. django-storages를 통해 boto3를 사용한다. 이렇게 설치된 라이브러리를 django에서 사용하기 위해 settings.py에..

Server/Django issue 2022.09.14

[Django] 인증 인가 참고자료

User Token Authentication https://www.youtube.com/watch?v=s3jTweZiqfI&t=288s https://velog.io/@killi8n/Dnote-5-1.-Django-권한-설정-및-로그인-회원가입-구현-tmjmep5tcm Dnote 5 - 1. Django - 권한 설정 및 로그인 / 회원가입 구현 일단 권한을 설정 해야 하니까, Django로 돌아옵시다. django-rest-knox 라는 패키지를 다운로드 해야합니다. settings.py 이제 기본 권한을 설정했으니, notes 모델에서 owner 필드를 추가해주겠습니다. notes/ velog.io https://devkor.tistory.com/entry/03-Django-Rest-Framewor..

Server/Django issue 2022.08.08

[Django] Custom User

Reference https://dev-yakuza.posstree.com/ko/django/custom-user-model/ 장고(django)의 커스텀 유저 모델(Custom User Model) 장고(django) 프로젝트에서 사용되는 유저 모델(User Model)을 입맛에 맞게(Customization) 수정하여 사용해 봅시다. dev-yakuza.posstree.com https://blaize.tistory.com/89 Django User model Custom AbstractUser (사용자 정의 사용자 모델 대체) 일부 프로젝트에는 Django의 내장 사용자 모델이 항상 적절하지 않은 인증 요구 사항이 있을 수 있다. 예를 들어 일부 사이트에서는 사용자 이름 대신 이 blaize.tis..

Server/Django issue 2022.08.05

[Django] MySQL 테이블 전체 삭제

$ mysql -uroot -p mysql> SET @tables = NULL; SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables FROM information_schema.tables WHERE table_schema = 'DB명'; -- specify DB name here. SET @tables = CONCAT('DROP TABLE ', @tables); PREPARE stmt FROM @tables; EXECUTE stmt; DEALLOCATE PREPARE stmt; Reference https://bizmark.co.kr/setup-and-tips/mysql/mysql-테이블만-전체-삭제-하는법/ Mysql 테이블만 전체 삭제 하..

Server/Django issue 2022.08.05

[Django] User model 확장

Reference https://yonghyunlee.gitlab.io/python/user-extend/ django login 유저 확장 방법 - 김땡땡's blog 장고의 auth 기능은 User 객체를 제공한다. 우리는 기본 default로 이 User 객체로 여러 인증을 구현할 수 있다. User model User model의 기본적으로 있는 여러 필드들이 있다. username 필수사항이다. 150자 이 yonghyunlee.gitlab.io https://github.com/dev-yakuza/django_custom_user_model GitHub - dev-yakuza/django_custom_user_model Contribute to dev-yakuza/django_custom_us..

Server/Django issue 2022.08.04

[Django] mysql 로그인 오류 해결방법

https://2vup.com/mysql-password/ [mySQL8] 로그인 오류 해결방법 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) / ERR 🔒 mysql 비밀번호 재설정 ❌ 오류 mysql에서 옳은 비밀번호를 입력했음에도 불구하고 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) 오류를 마주했다. mysql> UPDATE user set password=passwor 2vup.com

Server/Django issue 2022.08.04

[Django] mysqlclient 설치 에러 해결

macOS 환경에서 pip install mysqlclient를 실행할 경우 설치에러가 발생하는 경우가 존재한다. 해결 방법은 간단하다. brew install mysql 을 진행하고 pip install mysqlclient 를 실행하면 정상적으로 설치된다. $ brew install mysql $ pip install mysqlclient + 추가 우분투 linux 에서 pip mysqlclient 설치 해결 https://hongjuzzang.github.io/howto/install_mysql_ubuntu/ [Ubuntu 18.04] mysqlclient install Ubuntu 18.04에서 mysqlclient 설치 오류 해결하기 hongjuzzang.github.io

Server/Django issue 2022.08.04

[Django] Git 초기화 & Github 연결

Git 초기화 git을 이용하여 관리할 수 있도록 초기화 한다. manage.py가 있는 디렉토리에서, git init으로 git을 초기화 시킨 다음에 .gitignore 파일을 먼저 작성한다. .gitignore 앞서 생성하였던 my_settings.py와 같이 공유하면 안되는 것들을 구분하기 위해 .gitignore파일을 만들어 관리하는 것이다 먼저, gitignore사이트 에 접속하여 아래와 같은 키워드들을 추가하고 Create 를 한다. || python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh... || 그리고 그 내용들을 .gitignore 파일을 열어서 내용를 추가하고 my_setting.py 파일도 추가한다. #################..

Server/Django issue 2022.08.03

[Django] Project 초기 세팅

프로젝트 셋팅에 대한 자료가 방대해서 싹다 모아보여 한다. 가상 환경 추가 및 적용 (Mac 적용: source venv/bin/activate, Mac 해제: venv/bin/deactivate) Django 설치 다음과 같이 업데이트가 가능하다면 pip와 setuptools를 업데이트 한다. # pip를 최신 버전으로 업데이트 $ python -m pip install --upgrade pip # setuptools를 최신 버전으로 업데이트 $ pip install --upgrade setuptools # 해당 가상 환경에 장고 설치 $ pip install django $ pip install django=원하는버전 폴더 하나 생성: DjangoProject 그 안에, django-admin sta..

Server/Django issue 2022.08.03

[Django] migration 파일은 커밋 되어야 하는가?

마이그레이션 파일을 다루는 절대 원칙 이미 커밋된 마이그레이션 파일은 지우면 안 됩니다. 위와 같은 이유로 .gitignore에 포함시키지 않고 코드 저장소(Github)에 업로드하여 관리합니다. 코드 저장소에 올리기 전에 혹은 프로덕션에 반영하기 전에 문제가 없는지 확인합니다. 왜 지우면 안 되나요? 디비를 모두 날렸어도 처음부터 끝까지 마이그레이션 파일을 실행했을때 날리기 전의 디비의 스키마를 그대로 복구할 수 있어야만 완전한 마이그레이션 파일입니다. 그런 상태일때만 여러분 각자의 로컬 디비가 서로 같은 상태를 유지하며 개발되고 있음을 보장할 수 있기 때문입니다. 그래서 마이그레이션 파일은 디비에 변경점을 가하기 위한 도구라기보단 디비의 변경점을 기록해두는 커밋 로그처럼 다뤄야 합니다. 가끔 심각하게..

Server/Django issue 2022.08.02

2. 쿠키와 세션 (cookie and session)

우리가 웹페이지에 접근을 할 때 로그인이 되어 있을 때와 로그인이 되어있지 않을 때는 다양한 것들이 다르게 반응한다. 권한도 다르고 해당 페이지도 다르게 나타날 수 있다. 그렇다면 로그인 후에는 웹페이지를 돌아 다닐때마다 로그인을 했다는 표시인 열쇠?키? 같은 것을 들고 다니는 듯하다. 그것이 아니라면 페이지마다 로그인을 해야겠지. 그럼 쿠키와 세션은 무엇을 뜻하는 걸까? 좀 더 파헤쳐 보자!!!! 1. 전체 동작원리 (쿠키이용, 세션이용) 자! 우리는 지금 웹페이지에서 어떻게 동작하는지 보자! 내가 네이버에 들어가기 위해 naver.com을 검색하면 naver의 서버에 내가 요청을 하게 된다. 그럼 서버에서는 해당페이지를 나한테 응답하고 그것을 화면에 띄워주는 것이 큰 틀이다. 웹페이지가 동작을 할 때..

Server/Django issue 2020.09.23