본문 바로가기

DRF - ModelViewSet Custom Method 저는 Django REST Framework 를 통해서 Restful API를 만들 때 View 단에서는 ModelViewSet을 주로 활용하고 있어요.그냥 왠만한 것은 그냥 사용해도 되고, Custom이 필요할 때는 필요한 Method만 Override 해서 사용하면 좋더라구요. 예를 들어서 Get으로 들어오는 요청은 list 함수를 Override하면 되고 Post 요청은 create 함수를 Override 하면 됩니다.함수를 호출하는 것은 Router에서 이뤄지기 때문에 어떤 Router를 사용하느냐에 따라 약간 달라질 수 있겠습니다. DRF Homepage에 보면 http://www.django-rest-framework.org/api-guide/routers/Router에 대해 자세히 설명되어 .. 더보기
DRF - Method 제한, 허용 Django Rest Framework에서 특정 Method만 허용하고 싶다면 다르게 말하면 특정한 Method만 사용할 수 있도록 제한하고 싶으면 Viewset에 http_method_names 속성을 적용하면 됩니다. 이것은 django에서 제공하는 속성이고 좀 더 rest framework 답게 사용하는 방법도 존재하지만 저한테는 이게 더 편한거 같아요. 아래 그림은 post만 허용한 상태에 대한 예제를 나타냅니다. 그림에서 나타난 것 처럼 Allow에 POST만 보입니다. 아래 그림들은 Get과 Post 방식을 허용한 상태를 나타냅니다. 그림에서 볼 수 있는 것 처럼 POST,GET 방식이 허용되고 하단에는 GET으로 얻어진 값들이 출력됩니다. :) 더보기
django admin site - list display 장고(django)에서 제공하는 강력한 앱은 admin인 것 같아요.아래에는 django의 list display의 중요성을 간단하게 정리합니다. :) 1. admin 페이지에 단순 model을 표출하는 것은 아래와 같은 소스로 가능합니다. models.py에 있는 클래스 중 Comment를 불러오고 이것은 admin site에 등록하는 소스이죠. 적용된 화면을 보면 아래와 같아요. 좋습니다.!! comment가 5개 있다는 정도는 알 수 있겠네요. 2. 기존 소스를 조금 변경해서 아래와 같이 수정해봤습니다. class를 하나 만들었는데요. CommentAdmin입니다. !! list_display에 여러 컬럼 이름을 작성해줬고! 이것이 중요합니다. :) list_display에 작성한 것들이 한 번에 .. 더보기
DRF - Django Rest Delete 403 Error Delete 요청을 Django Rest Framework로 보내는 것에서 헤맸다. 일단 jQuery를 활용하여 Post 요청을 하는 예시를 보면 아래와 같다. jQuery기반의 cookie 라이브러리를 사용하고 있는데 아무튼 위와 같은 소스를 통해 DRF 기반의 restful API에 요청하는 것이 가능했다. 당연히 위와 같은 방법으로 delete도 실험했는데 이상하게 delete는 잘 안되고 아래와 같은 에러가 발생했다.CSRF 에러 !! 해결하기 위해서는 post와는 조금 다르게 ajax 셋팅이 필요했다.CSRF Token 값을 beforeSend를 통해 전달해야한다. post도 위와 같은 방식으로 가능한지 테스트를 해봐야겠다.!!방금해봤다!! 가능하다!!! 그럼 아래 방식으로 통일해서 사용해야겠다.. 더보기
django - model field example django model field에 대해서 작성해봅니다. model field는 여러 가지가 있고, 옵션(option)들도 있어서 원하는 form이나 database table을 만들 수 있습니다. 여러 model field를 한 번 생성해보고 admin 페이지에서 어떻게 보이는지확인해보는 것이 이번 포스팅의 목적입니다. 일단 model field에 대한 django 공식홈의 문서는 아래 url과 같습니다.url : https://docs.djangoproject.com/es/1.9/ref/models/fields/ model filed option에 대해서는 아래 url을 참고하세요.url : https://docs.djangoproject.com/es/1.9/topics/db/models/#field.. 더보기
django - model and admin django에 대해 tutorial 부터 다시 보고 있습니다. 이번 포스팅에서는 tutorial에 나와 있는 것을 따라해보는 정도입니다. tutorial url https://docs.djangoproject.com/en/1.9/intro/tutorial02/ 위 tutorial 중 하단에 있는 내용 중 admin 페이지에 관한 것입니다.model에 attribute는 데이터베이스의 column과 유사하게 인식해도 될 것 같습니다. 아래와 같은 단계를 통해 admin 페이지의 기능을 확인해보고자 합니다. 1. super 사용자 생성 (createsuperuser)2. 여러 attribute 가진 model 생성3. admin.py 수정4. admin 페이지 접속 및 확인 1. python manage.p.. 더보기
django - ModelForm Example 2016년도 시작했으니깐. 바빠서 작성하지 못했던 내용들을 정리해보려고 합니다. 이번 포스팅에서 정리해두려고 하는 것은 ModelForm 입니다. 데이터베이스와 연관된 서비스를 만들 때 활용되는 것으로써 자세한 내용은 아래 URL에서 확인할 수 있습니다.https://docs.djangoproject.com/en/1.9/topics/forms/modelforms/ 여기서는 urls.py / views.py / forms.py / models.py 소스코드 일부를 가지고 화면을 만들어보는 것을 목표로 했습니다. 1. urls.py url을 관리하는 파일이죠. 소스는 아래와 같습니다. from django.conf import settingsfrom django.conf.urls import patterns.. 더보기
Django Static 정리해두기, 실습해보기 이번에도 나중에 다시 쓰려고 정리해두려고 합니다. 1. Django 1.8.2 기준입니다. 2. Django static 설정은 settings.py에 작성합니다. 참고 웹 페이지) https://docs.djangoproject.com/en/1.8/ref/settings/ # STATIC_ROOT는 python manage collectstatic 명령어를 통해서 수집되는 static 파일들이 위치하는 곳입니다. # 값으로 경로를 작성해주시면 됩니다. STATIC_ROOT = "/path/..." # STATIC_URL은 static 파일에 접근하기 위한 url을 작성하는 곳입니다. # 값으로 url을 작성하면 됩니다. 공식 문서에 나와있는 예시 값은 "/static/" 입니다. STATIC_URL =.. 더보기
Django Login Session 역시 이번 포스팅도 그냥 정리해두기 위해서 작성합니다. 1. Django 1.8.2 기준입니다. 2. Django에서 로그인하는 방법에 대해서는 공식홈페이지에 잘 설명되어 있고 어려운 경우 참고할만한 여러 블로그가 존재합니다. 따라서 로그인에 대해서 작성하고자 하는 것은 아니고 Login 했을 때 session 쪽에 대해서 입니다. 3. Django로 만들어진 웹 시스템에 접속하면 아마도 다음과 같은 session이 만들어지는 것 같습니다. 로그인하지 않았을 때 입니다. Dictionary, 4개의 Key가 존재하네요. {'_session_key': None, 'modified': False, 'serializer': , 'accessed': False} 4. 로그인하고 바로 session을 출력해보면 .. 더보기
Django Forms(004) - submit form Blog Posting - Django Forms Django Forms(001) - init : http://ngee.tistory.com/736 Django Forms(002) - create page : http://ngee.tistory.com/737Django Forms(003) - create form : http://ngee.tistory.com/739Django Forms(004) - submit form : http://ngee.tistory.com/740 001, 002, 003에 이어서 이번에는 004 submit form입니다. 결론적으로는 잘 까먹는 저를 위해서 작성해두는 포스팅이구요. 혹시라도 읽고 계시는 분이라면 순서대로 읽고 계시다고 가정하고 내용을 정리합니다. 앞선 포스팅에.. 더보기
Django Forms(003) - create form Blog Posting - Django Forms Django Forms(001) - init : http://ngee.tistory.com/736 Django Forms(002) - create page : http://ngee.tistory.com/737 Django Forms(003) - create form : http://ngee.tistory.com/739Django Forms(004) - submit form : http://ngee.tistory.com/740 001, 002에 이어서 이번에는 003 create form입니다. 결론적으로는 잘 까먹는 저를 위해서 작성해두는 포스팅이구요. 혹시라도 읽고 계시는 분이라면 순서대로 읽고 계시다고 가정하고 내용을 정리합니다. 앞선 포스팅에서 생성.. 더보기
Django Forms(002) - create page Blog Posting - Django Forms Django Forms(001) - init : http://ngee.tistory.com/736 Django Forms(002) - create page : http://ngee.tistory.com/737 Django Forms(003) - create form : http://ngee.tistory.com/739 Django Forms(004) - submit form : http://ngee.tistory.com/740 001에 이어서 002는 create page입니다. 결론적으로는 잘 까먹는 저를 위해서 작성해두는 포스팅이구요. 혹시라도 읽고 계시는 분이라면 순서대로 읽고 계시다고 가정하고 내용을 정리합니다. 001을 간단하게 리뷰해보면, 스크.. 더보기
Apache + Django Setting Tip 1. KeepAlive Off Apache + Django 으로 서비스하는 경우 Apache의 KeepAlive 를 Off로 해두는 것이 더 나은 속도를 제공한다고 합니다. Apache 기본 설정으로 KeepAlive가 On 되어 있는 것 같네요. (Ubuntu 12.04에서 apt-get으로 설치한 경우..) 설정 파일은 다들 알고 계시겠지만 /etc/apache2/apache2.conf 이구요. KeepAlive Off로 변경 후 service apache2 restart 하면 됩니다. 2. WSGIDaemonProcess 192.168.0.100 processes=2 threads=15 ........ WSGIProcessGroup 192.168.0.100 위 2줄은 국내 블로그들에서 별로 언급되어.. 더보기
Celery Return Value (Ready and Get function) *관련 포스팅 내용 Celery + RabbitMQ + Django 참조사이트 : http://ngee.tistory.com/540 Celery + RabbitMQ + Django 연계 1 : http://ngee.tistory.com/542 Celery + RabbitMQ + Django 연계 2 : http://ngee.tistory.com/548 Celery + RabbitMQ + Django 연계 3 : http://ngee.tistory.com/549 Celery Args : http://ngee.tistory.com/550 Celery Worker : http://ngee.tistory.com/563Celery Worker2 : http://ngee.tistory.com/564Celery Lo.. 더보기
Celery Worker 1 *관련 포스팅 내용 Celery + RabbitMQ + Django 참조사이트 : http://ngee.tistory.com/540 Celery + RabbitMQ + Django 연계 1 : http://ngee.tistory.com/542 Celery + RabbitMQ + Django 연계 2 : http://ngee.tistory.com/548 Celery + RabbitMQ + Django 연계 3 : http://ngee.tistory.com/549 Celery Args : http://ngee.tistory.com/550 Celery Worker : http://ngee.tistory.com/563 Celery Worker2 : http://ngee.tistory.com/564 Celery .. 더보기
Celery Args *관련 포스팅 내용 Celery + RabbitMQ + Django 참조사이트 : http://ngee.tistory.com/540 Celery + RabbitMQ + Django 연계 1 : http://ngee.tistory.com/542 Celery + RabbitMQ + Django 연계 2 : http://ngee.tistory.com/548 Celery + RabbitMQ + Django 연계 3 : http://ngee.tistory.com/549 Celery Args : http://ngee.tistory.com/550 Celery Worker : http://ngee.tistory.com/563 Celery Worker2 : http://ngee.tistory.com/564 Celery .. 더보기