Web 49

장고 서버 배포 간단 요약

1. AWS에 새 인스턴스(서버 하나 빌리는것) 생성(key.pem 중요)2. mac은 터미널에서, window는 putty나 MobaXTerm(추천)으로 인스턴스에 접속3. 접속 했으면, 인스턴스에 원격 코드 가져오기 (github 쓰셨으면 git pull)4. sudo apt-get install build-essential libpq-dev -y =>  pip install -r requirements.txt 를 통해 필요한 라이브러리 설치5. config파일 생성해 키값들 복사 붙여넣기 ( cp config.py 내 레파지토리/내 프로젝트 명  # config.py 파일을 원하는 위치로 복사 )6. python3 manage.py migrate하기(makemigrations 명령은 배포 인스턴스에..

Web/Django 2024.10.04

장고 커서 페이지네이션

DRF의 내장 페이지네이션 클래스 구성하기DRF에는 PageNumberPagination, LimitOffsetPagination, CursorPagination 등이 있음.PageNumberPagination: 데이터를 일정 크기의 페이지로 나누고 클라이언트가 특정 페이지를 요청할 수 있게 함.LimitOffsetPagination: 클라이언트가 반환할 항목 수와 데이터 컬렉션 내에서 시작 지점을 지정할 수 있음.CursorPagination: 큰 데이터 세트에 대해 더 효율적인 커서 기반의 페이지네이션 시스템을 제공이러한 페이지네이션 클래스를 사용하려면 DRF 설정의 DEFAULT_PAGINATION_CLASS에 추가하고 페이지 크기를 지정해야 함.REST_FRAMEWORK = { 'DEFAUL..

Web/Django 2024.10.02

django admin 커스터마이징 시 유의점

장고 admin을 상속받아서 쓸 때마다, 거슬리는 First name, Last name.이 녀석들을 처리하기 위해,AbstractUser 대신 AbstractBaseUser라는 클래스를 상속받을 시에는 기존 (is_superuser, is_staff, is_active같은)특정 필드와 PermissionsMixin클래스 상속이 있어야 관리자 페이지에 접근 할 수 있음.class User(AbstractBaseUser, PermissionsMixin): username = models.CharField(max_length=50, unique=True) name = models.CharField(max_length=20) is_superuser = models.BooleanField(def..

Web/Django 2024.10.01

os.getenv 트러블 슈팅

만약 OpenAI를 쓰는데 권한 에러가 뜬다고 하면 os라이브러리에 getenv함수를 썼는지 확인하자.getenv에 첫번째 인자값이 없다면 두번째 인자값으로 설정해주는 함수입니다. 만약 환경변수를 설정하셨다면 뒤에 인자값을 주었다해도, 환경변수값을 가져옵니다.따라서 아래와 같이 직접 키를 입력받게끔 바꾸시면 됩니다.OPENAI_API_KEY = sk-3_hRq7Bhfm4wV ~~~~

Postman 작업물 합치기 및 결과물

postman 공동작업은 2명까지 무료.실시간 공동 작업 말고, 데이터 주고받는법 없을까?라는 생각이 듭니다.   그럴땐 아래를 참조하세요~ 1. 합칠 postman 데이터를 보내는 사람은 아래의 네모박스를 차례대로 누름 2. 다른거 안건들이고 Export버튼 누름. 저장 후 한 곳에 모을 사람에게 저장한 파일 넘겨줌    3. 합칠 파일들을 받은 사람은 왼쪽 위 메뉴 버튼을 누르고 file -> import를 클릭 4. 받은 파일들 선택 후 나머지는 알아서 합치세요.... ㅎ     결과물 잘 합쳐진다.

Web/Postman 2024.09.13

Postman access_token 일일이 가져다 쓰기 귀찮을 때

포스트 맨을 쓰다보면 로그인하고, 발급받은 토큰을 다른 request의 Authorization에 등록해야한다. (아래와 사진 순서같이) 이런식으로 하나하나 토큰을 붙여서 써야하는데 너무 귀찮다.  이를 위해 포스트맨에서 지원하는 전역 변수를 써보자.1. 새로운 개발환경을 만들고 이름을 바꿔준 후, 환경을 바꿔준 환경으로 설정 (아래 사진 참고)2. 로그인 request에서 Scripts를 누르고, Post-response탭으로 들어가 아래 내용을 기입한다.let responseBody = pm.response.json();let accessToken = responseBody.access; #로그인 뷰 커스텀하신 분이면 .access부분 커스텀에 맞게 고쳐주세요~let refreshToken = res..

Web/Postman 2024.09.09

Django permissoin_classes (GET, POST 나누기)

Django DRF에서GET LIST하면 로그인 안해도 보여주고 싶고, 나머지 함수는 로그인 해야 작동하게 하고 싶은데....요런식으로 쓰면 함수 밑에다가 정의를 하든 어찌하든 다 로그인 후에 가능하게끔 설정이 된다.물론 함수를 일일이 나눠서 GET은 permission_classes를 빼놓고 해도 되지만,필자는 class안에서의 permission_classes를 부분적으로 주는 방법을 다뤄보려 한다. 장고 공식문서: https://www.django-rest-framework.org/api-guide/permissions/ Permissions - Django REST framework www.django-rest-framework.org  위에 대충 해석해보면 클래스나 함수를 쓸때, settings..

Web/Django 2024.09.05

Django 서버 배포하기

01. 클라우드 컴퓨팅    우리가 제작한 Django 서비스는 1년 365일 24시간 돌아가야 함즉, 우리는 안정적으로 항상 켜져 있는 컴퓨팅 자원이 필요 01. 클라우드 컴퓨팅: 쉽게 말하면 물리적 서버를 가상화 시켜서 인터넷 서비스로 제공하는 것아래와 같이 크게 세 가지로 분류할 수 있음.  IaaS(Infrastructure as a Service)물리적인 컴퓨팅 자원을 가상화 해서 제공하는 서비스모두 설정을 해줘야하므로 마음대로 커스텀 할 수 있음 (장점이자 단점)Amazon Web Service, Microsoft Azure, Google Compute EnginePaaS(Platform as a Service)플랫폼을 가상화 해서 제공하는 서비스인프라에 대한 관리 없이 개발에 집중하여 빠른 ..

Web/Django 2024.09.03