일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 코딩테스트
- DFS
- 다이나믹프로그래밍
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- java #자바
- PYTHON
- css #웹 #생활코딩
- 백준 #알고리즘 #파이썬 #코딩테스트
- BFS
- dp
- react #리액트 #동빈나
- java #자바 #생활코딩
- 프로그래머스
- Dijkstra
- 투포인터
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- 파이썬
- 백준
- java #자바 #나동빈
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- 백트랙킹
- react #리액트 #동빈나 #나동빈 #유튜브강의
- 다익스트라
- 재귀
- 자바 #java
- css #생활코딩 #웹
- 알고리즘
- 파이썬 #백준 #알고리즘 #코딩테스트
- 백준 #파이썬 #알고리즘 #코딩테스트
- java #자바 #동빈나
- Today
- Total
목록
728x90
django
728x90
(25)
커리까지
player 모델에서 name이 중복된 선수와 현역 선수를 제거한다. name 필드를 기준으로 값을 가져오기 위해 values를 사용한다. values를 사용하면 {'name' : 'curry'} 형식으로 값을 반환한다. 1번에서 name을 기준으로 가져온 값을 annotate를 사용해서 id로 group by를 수행한다. 2번에서 수행한 값 cnt 를 기준으로 2개 이상인 obj만 반환한다. 3번의 값으로 for loop를 돌면서 이름을 기준으로 데이터를 가져오고 retire_year로 오름차순하여 맨 처음 값만 가져온다. 해당 obj를 삭제한다. 현역 선수 이름을 리스트로 담는다. 선수 이름이 들어간 모든 obj를 가져온다. 다 삭제한다. 여기서는 1개라 그냥 사용했고 2..
기본 db는 장고에서 기본으로 사용하는 sqlite3을 사용하였다. mysql이나 다른 것들은 설정에서 따로 해주면 연결할 수 있다. 1. makemigrations 하기 그럼 다음처럼 모델이 반영된다. (nbaPredictEnv) 20:57 ~/nba_predict_django (master)$ python manage.py makemigrations Migrations for 'nba_app': nba_app/migrations/0001_initial.py - Create model Player - Create model Predict - Create model Image 2. migrate 하기 (nbaPredictEnv) 14:46 ~/nba_predict_django (master..
다음 과정들은 로그인 후 진행하면 된다. 편의상 로그인은 생략하였다. 1. Bash 들어가기 대시보드 화면에서 Bash를 클랙해서 Bash 환경으로 들어간다. 2. github 레포지토리 clone하기 깃허브 링크를 복사하여 bash 환경에서 clone한다. $ git clone 깃허브링크 3. 파이썬 가상환경 실행하기 먼저 clone 받은 프로젝트로 이동한다. $ cd nba_predict_django 가상환경 생성 후 실행한다. pyhtonanywhere는 파이썬 버전 3.9까지만 지원되고 3.10은 아직 안 된다. $ virtualenv --python=python3.9 nbaPredictEnv $ source nbaPredictEnv/bin/activate 그럼 아래와 같이 가상환경이 설정된다. ..
크롤링_into_db 스크립트 파일의 위치는 최상단 즉, manage.py파일의 위치와 동일하다. 기본 세팅 크롤링에 필요한 셀레니옴 모듈을 불러온다. db에 데이터를 삽입하기 위해 장고의 환경설정을 다시 잡아줘야 해서 settings를 다시 설정한다. from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from nba_app.models import Player from dataclasses import dataclass from selenium.webdriver.common.by import By import os os.environ['DJANGO_SETTINGS_..
로그인은 simple-jwt 라이브러리를 사용하였다. 공식문서 이 페이지에서는 간단하게 설치하고 설정하고 토큰을 받아오는 부분만 설명하려고 한다. 자세한 사용법 보러가기 참고 블로그 설치하기 pip install djangorestframework-simplejwt 환경 설정 REST_FRAMEWORK = { ... 'DEFAULT_AUTHENTICATION_CLASSES': ( ... 'rest_framework_simplejwt.authentication.JWTAuthentication', ) ... } REST_USE_JWT = True SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(days=1), 'REF..
휴대폰 인증 문자 API 구현하기를 통해 전화 번호 인증을 통과한 사용자는 회원가입을 진행할 수 있다. 회원가입은 rest-auth에서 제공하는 register를 사용할 것이다. rest-auth 설치하기 1. django-rest-auth install pip install django-rest-auth2. INSTALLED_APPS에 추가하기 INSTALLED_APPS = ( ..., 'rest_framework', 'rest_framework.authtoken', ..., 'rest_auth' )3. django-rest-auth[with_social] install pip install django-rest-auth[with_social]4. settin..
1.휴대폰 인증 문자 모델 생성하기에서 만든 모델이 정확하게 동작하는지 API로 만들어서 확인하는 작업이다. 전화번호 인증 메시지 보내기 View 기본적으로 모든 요청은 인증된 사용자만 접근하도록 설정하였기에 AllowAny를 하여 모든 사용자가 접근 가능하도록 한다. serializer로 먼저 사용자에게 입력받은 전화번호가 형식에 맞는지 확인한다. valid vaild에 통과하지 못하면 해당 에러 메시지를 반환한다. 통과하는 경우 다음단계로 넘어간다. 전화번호가 SmsAuth모델에 있으면 인증번호를 업데이트하고 없으면 새로 객체를 생성한다. class SMSAuthSendView(APIView): ''' 전화번호 인증하기 전화번호 인증 메시지 보내는 view ''&#..
회원가입을 진행할 때 본인인증 방법으로 패스 앱을 이용하거나 전화번호 확인이 있다. 그중에서 전화번호로 인증번호를 확인하여 인증을 하는 방법을 사용해보려고 한다. 전화번호로 인증번호를 보내기 위하여 발신 메시지 서비스가 있어야 한다. 네이버 클라우드에서 제공하는 Simple & Easy Notification Service를 이용하였다. 인증번호 저장 모델 유저의 전화번호와 인증번호를 컬럼을 생성한다. save 함수를 다시 재정의한다. 랜덤한 수를 생성하여 auth_number에 할당하고 난 후 부모 save를 불러 저장한 다음에 sms을 전송한다. 인증번호 전송 함수는 네이버에서 sms를 보내기 위해 필요한 정보들을 채워서 보낸다. sms API 네이버 sms 인증 발신번호 생성하는 방법 보러 가기 k..
1. Simple & Easy Notification Service 이용 신청하기 클릭 Simple & Easy Notification Service 바로가기 2. 콘솔창에서 Products & Seriveces 클릭 한 후 AI-Application Service에서 Simple & Easy Notification Service 클릭 3. 프로젝트 생성하기 4. 사용할 서비스의 타입을 선택하고 프로젝트 이름과 설명을 기입 5. 생성하기가 완료되면 왼쪽 메뉴에서 SMS를 클릭해 Calling Number로 들어가서 발신번호 등록하기 6. 프로젝트명과 등록한 발신번호가 일치하는지 확인하기 7. 콘솔말고 네이버 클라우드 페이지에서 마이페이지 > 계정관리 > 인증키 관리에서 신규 API 인증키 생성하기
api에서 데이터를 가져오고 data를 추출할 때 두 개의 차이점이 궁금했다. input에서 차이점이 있었다. 공통의 response를 받아서 비교해보자. url = reverse('product-list') response = self.client.get(url) .json() response_data = response.json() print(type(response)) print(response_data) print(type(response_data)) > [{'id': 1, 'name': '텀블러', 'cost': '10000'}] input으로 들어가야 하는 타입이 class이다. json.loads(respo..