본문 바로가기

Django

(9)
[Django] 네이버 영화 API 사용하기 1주차 Naver API 연동하기 Django에서 Naver API 활용하기 네이버 영화 API의 예제코드는 영화탭이 아니라 블로그 탭에 있다. # 네이버 검색 API예제는 블로그를 비롯 전문자료까지 호출방법이 동일하므로 blog검색만 대표로 예제를 올렸습니다. # 네이버 검색 Open API 예제 - 블로그 검색 import os import sys import urllib.request client_id = "YOUR_CLIENT_ID" client_secret = "YOUR_CLIENT_SECRET" encText = urllib.parse.quote("검색할 단어") url = "https://openapi.naver.com/v1/search/blog?query=" + encText # json ..
[파이썬] pyenv, virtualenv 설치 및 가상환경 생성하기 pyenv, virtualenv Pyenv와 Virtualenv 설정하기 OS : Ubuntu 16.04 LTS Mac OS X : 10.11 왜 설치해야 하죠? pyenv는 로컬환경(즉, 나의 컴퓨터)에 다양한 파이썬 버전을 확인할 수 있습니다. 요약을 하면 "쉽게 설치할 수 있다" 라는 것을 강조하고 싶습니다. "엥!? 파이썬만 설치하면 되는거 아냐?" 라고 생각하실 수 있지만, 사실 python에 기반한 수많은 배포판들이 존재합니다. Anaconda : 파이썬 기반의 개방형 데이터 과학에 특화된 플랫폼입니다. Jython : 파이썬으로 자바를 구현한 플랫폼입니다. pypy : 파이썬은 C로 짜였습니다. pypy는 파이썬으로 파이썬을 만들었습니다. 사용해볼 일이 있을까? 라는 생각이 들겠지만 특정 상..
[Django] 폼(Form)에서 commit=False의 의미 form Commit=False Django에서 모델 Form을 다루다보면 종종 commit=False라는 코드를 마주칠 때가 있다. 가끔씩 헷갈리는 부분이기 때문에 장고 공식문서를 통해 학습하고자 한다. save(commit=False) 왜 사용하나요? 한줄요약 : commit=False를 하게 되면 데이터베이스에 당장 저장하지 않는다. 언제쓰지? : DB에 데이터를 저장하기 전에 특정 행위를 하고 싶을 때 사용한다.. 실제 예제 모델 작성자 모델 idnickname 1사용자1 2사용자2 class Author(models.Model): nickname = models.CharField(max_length=20) 간단하게 회원가입할 때 적는 아이디(ID)를 nickname 필드로 지정했다. 게시글 모델..
[Django] Django allauth 유저 모델 커스텀하기 네이버로그인 소셜계정으로 회원가입한 유저 구분하기 제목을 커스텀 유저모델이라고 썼지만 사실 유저 인스턴스를 커스텀하는 것에 더 가깝다. 현재 만들고 있는 프로젝트에서 소셜계정으로 로그인하는 유저에게 특정 필드값을 부여하고 싶었다. 예를 들면 네이버로 로그인 하는 유저에게는 N이라는 값을, 페이스북으로 로그인하는 유저에게는 F 값을 주고 싶었다. 나중에 어떤 곳에서 유입이 더 많이 될지 살펴볼 수 있지 않을까? 처음에 혼란스러웠던 점은 어디서부터 시작해야 할지 모르겠다는 점이었다. 라이브러리 활용이 처음이었기 때문에 아예 백지 상태였다. 결론부터 말하자면 django-allauth에 어딘가를 오버라이딩해야 한다. django allauth custom usermodel이라고 검색하니 다시 공식문서로 회귀하..
[Django] Django-allauth를 통한 페이스북 회원가입 및 로그인 페이스북 회원가입 Django-allauth을 활용한 페이스북 회원가입(로그인) http://django-allauth.readthedocs.io/en/latest/installation.html 라이브러리 활용이 전무해서 처음에 좀 애먹었다. 우선 첫 환경세팅은 공식홈페이지를 보고 따라하는 것이 가정 정확하고 빠르다. 설치하기 pip install django-allauth settings.py 세 부분을 건들여줘야 한다. (INSTALLED_APPS, TEMPLATES, AUTHENTICATION_BACKENDS) INSTALLED_APPS에는 추가해야 할 앱들이 많기 때문에, +=를 활용해 아래칸에 따로 만들어줬다. INSTALLED_APPS += [ # The following apps are r..
[DJango] AbstractBaseUser vs AbstractUser 비교하기 AbstractUser vs AbstractBaseUser AbstractUser vs AbstractBaseUser AbstractBaseUser를 상속하게 되면 Class MyUser(AbstractBaseUser): pass 꼴랑 2개밖에 안던져준다(id는 자동생성 되는 필드니까). 이를 상속해서 유저 모델을 구축한다면 세밀한 컨트롤이 가능하지만 세그만큼 손도 많이 간다. 만약 페이스북 이메일 인증(permission)을 통한 가입을 하고 싶다면 AbstractBaseUser를 사용해야 한다. 상속받는 클래스틀 타고 들어가면 아래처럼 구현되어있다. class AbstractBaseUser(models.Model) password = last_login = def get_username(self): ..
[Django] Django + Celery + Redis 이용하기 Redis_Celery 들어가기 전에 동기 vs 비동기 (이미치 출처 : http://ojava.tistory.com/17) 어떤 서비스에 회원가입을 하면 메일이 날라오는 경우가 있다. 동기 : 메일이 날라올 때까지 아무것도 하지 못한다. 비동기 : 메일이 날라오지 않더라도 다른 작업을 할 수 있다. 비동기 방식이 짱짱맨 아니냐 하겠지만 어떤 방식이건 간에 장단점이 존재한다. 아무튼, 회원가입 축하 이메일 발송은 사실 고객(client)에게 중요한 부분이 아니다. 일단 가입을 하고 서비스를 이용하기를 원할 것이다. 이러한 이메일 발송은 비동기 처리로 보낼 수 있다. 이를 백그라운드에 보낸다고 표현한다. Djnago + Celery + Redis Celery는 일꾼이다. 해야 할 일들을 처리한다. Reid..
[Django] Django Rest Framework(DRF) 알아보기 1부 REST_API Django REST Framework (DRF) REST REST에 관해서 많은 블로그 글들이 자세하게 설명하고 있기에 여기서는 간단하게 설명하고자 한다. REST는 WEB 관련 기술이다. 데이터를 주고받는 일종의 규약이다. 단순하다. 사용하기 편하다. Open API와 궁합이 좋다. HTTP 기본 메서드 4가지(POST, GET, PUT, DELETE)를 통해 일관적인 컨벤션(관례)을 유지한다면 RESTful 하다고 한다. 좀 더 자세히 알아보고 싶다면 이 블로그를 추천한다. http://blog.remotty.com/blog/2014/01/28/lets-study-rest/ 직렬화 하기 처음에 이름부터 너무 어렵게 느껴져서, 직렬화라는 용어 자체가 두려움의 대상이었다. 그래서, 초심..