목록파이썬 (17)
훈훈훈
장고(Django)를 이용하여 간단하게 회원가입과 로그인 기능을 구현한 API에 패스워드 암호화 및 토큰 기능을 추가해보았다. * 이전에 구현한 코드 https://wave1994.tistory.com/57 # models.py models.py 파일은 데이터베이스 테이블을 만들고 그 안의 필드들을 생성 및 수정할 수 있는 역할을 한다. from django.db import models class Account(models.Model): email = models.EmailField(max_length=100, unique=True) password = models.CharField(max_length=200) created_at = models.DateTimeField(auto_now_add=True..
# SECRET_KEY란 ? 장고(Django)에서 SECREET_KEY는 암호화 인증에 사용되는 비밀키이다. 이 값은 다른 프로젝트와는 다른 유일한 값으로 세팅되어야하며, 버전 컨트롤 시스템에서 제외되어야 한다. 만약 외부에 노출 시 보안 위협에 노출될 수 있기 떄문에 settings 파일에 저장하는 것이 아닌 외부에 따로 저장을 해야한다. 해당 키를 분리 방법으로는 환경 변수를 이용한 방법과 외부에 저장하는 방법이 있으며, 이번 장에서는 외부에 저장하는 방법을 소개하려고 한다. # secret.json 생성 { "FILENAME" : "secret.json", "SECRET_KEY" : "I'm secret !!", "DATABASES_HOST" : "127.0.0.1", "PORT" : "8080"..
파이썬(python) 언어로 최신 음악 리스트를 가져오는 크롤러를 만들어보았다. 크롤러 대상 사이트는 음원 사이트인 FLO를 이용하였고 웹 사이트에서 제공하는 API를 이용하였다. # 사이트 https://www.music-flo.com/new/track?sortType=KPOP 위 사이트에 접속하면 아래와 같이 최신 음악을 볼 수 있는 페이지가 출력이 된다. 해당 페이지에서 개발자 모드(F12) 접속 후 Network 탭에 있는 API를 사용하려고 한다. - API URL : https://www.music-flo.com/api/meta/v1/track/KPOP/new?page=1&size=100×tamp=1581420059879 위 주소로 접속 하면 아래와 같이 Json 형태의 데이터를 볼 수 있다...
Django(장고)를 이용해 회원가입과 로그인 기능을 가진 API를 구현해보았다. # 디렉터리 구조 아래 명령어를 사용하여 프로젝트(mysite)와 앱(account)을 생성하였다. > django-admin startproject mysite . > python manage.py startapp account # models.py from django.db import models class Account(models.Model): name = models.CharField(max_length = 50) password = models.CharField(max_length= 200) created_at = models.DateTimeField(auto_now_add=True) updated_at = m..
# 쿼리셋(QuerySet) ?? QuerySet 이란 데이터베이스에서 전달 받은 객체의 목록이다. (Django ORM에서 발생한 자료형) 리스트와 구조는 같지만 파이썬 기본 자료구조가 아니기 때문에 파이썬에서 읽고 쓰기 위해 자료형 변환(Casting)을 해줘야한다. 이제 아래와 같은 코드로 확인해보자. 위 코드는 request 요청으로 "name" 과 "password"를 전달받아 Json 형태로 반환해주는 코드이다. 필요한 모듈들은 Import 한 후 파이썬 쉘에서 확인해보자. ($ python manage.py shell) 현재 데이터베이스에 쌓인 값이 없기 때문에 [모델클래스].objects.create( )에 임의의 값을 저장하였다. 값을 저장 후 [모델클래스].objects.all( )와 ..
# 프로젝트와 애플리케이션 - 프로젝트 웹 사이트에 대한 전체 프로그램을 프로젝트(Project)라고 한다, - 애플리케이션 모듈화된 단위 프로그램을 애플리케이션이라고 한다. 즉, 애플리케이션 프로그램들이 모여 프로젝트를 구성하는 개념 # MVT 패턴 MVT 각 기능을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식이다. (MVC 패턴과 동일) - Model : 데이터베이스에 저장되는 데이터를 의미 - VIew : 실질적으로 프로그램 로직이 동작하여 데이터를 가져오고 처리한 결과를 Templete에 전달 - Template : 사용자에서 보여지는 UI 부분 일반적으로 REST API 를 생성할때는 Model과 View 영역만 작성한다. ** Client의 요청을 받고, Django에서..
# Import 찾는 순서 1. sys.modules 파이썬이 모듈이나 package를 찾기 위해 가장 먼저 확인하는 곳이며, 파이썬 인터프리터가 제공하는 변숭롸 함수를 직접 제어할 수 있다, 해당 모듈은 단순한 디렉터리 이며, 이미 import된 모듈과 패키지들을 저장하고 있음, 즉, 새로 import하는 모듈은 sys.modules에서 찾을 수 없다. 2. buit-in modules 파이썬에서 제공하는 공식 라이브러리, Buit-in 모듈든은 이미 파이썬 설치 시 같이 포함된다. 3. sys.path sys.path는 기본적으로 string 요소들을 가지고 있는 list다. 그러므로 파이썬은 list의 각 경로를 하나 하나 확인하여 import 대상인 package가 어느 경로에 위치하고 있는지 확..
# 문자열 포매팅 종류 - %Operator C에서 사용하던 스타일이며 가장 오래된 방식이다. 가독성이 str.format, f-string 방식에 비해 많이 떨어지며, 현재는 권장하지 않는 방식이다. - str.format 파이썬 3.0 이상부터 지원한 포매팅 방식이며, 다음과 같이 %Operator에 비해 월등한 가독성을 보여준다. 하지만 여러 매개변수를 처리할 때 format 함수도 같이 길어지기 때문에 이 방식 또한 가독성은 좋지 않다. - f-string 파이썬 3.6 이상 부터는 지원하는 포맷이며 가장 빠른 속도를 지원한다. f-string은 다음 예제와 같이 f 접두사를 붙여 사용할 수 있다. # 속도 비교 각 포매팅 방식별 속도를 비교하기 위해 속도 비교 함수를 작성 후 테스트를 진행하였다..