2018. 5. 7. 11:30ㆍ개발을 파헤치다/Django
Python 3.6 CentOS7 설치
1.IUS Community Project Repository를 yum Repository에 추가
$ yum install -y https://centos7.iuscommunity.org/ius-release.rpm
2.Python 3.6이 존재하는지 확인
$ yum search python36
3.Python 3.6 설치
$ yum install -y python36u python36u-libs python36u-devel python36u-pip
4.설치 확인
$ python3.6 -V -> Python 3.6.0이 출력됨
5.심볼록 링크 설정
현재 python 커맨드가 구버전(2.7)으로 되어있는 경우 이를 변경해줍니다.
$ ls -l /bin/python*
현재 python 명령어가 python 2.7에 연결되어 있는 것을 볼 수 있습니다.
이것을 제거하고 새로 설치한 python3.6으로 링크를 걸어줍니다.
$ unlink /bin/python -> 기존 링크 제거한다
$ ln -s /bin/python3.6 /bin/python -> 3.6버전으로 새로 링크를 만든다
Python의 Package Manager인 PIP도 함께 링크를 걸어줍니다.
$ ln -s /bin/pip3.6 /bin/pip
6.최종확인
$ python -V -> Python 3.6.0이라고 출력된다.
Django REST Framework 사용하기
1.Django, Django-REST Framework 설치
#Django와 Django REST Framework를 설치한다
pip install django
pip install djangorestframework
2.Project 생성
$ mkdir workspace -> 작업할 공간 생성
$ django-admin.py startproject tutorial -> Project 폴더 생성
3.Application 생성
$ cd ./tutorial
$ django-admin.py startapp quickstart -> Application 폴더 생성
4.Directory 구조 확인
$ cd ../
$ find .
Project와 Application이 생성된 것을 볼 수 있습니다.
5.Test를 위한 Serializer 생성
먼저 Serializer를 생성해 보도록 합니다.
vi [project directory]/tutorial/quickstart/serializers.py -> Serializer 파일을 생성
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'groups')
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ('url', 'name')
6.Test를 위한 View 생성
vi [project directory]/tutorial/quickstart/views.py
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows groups to be viewed or edited.
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
7.URL 세팅
vi [project directory]/tutorial/url.py
from django.conf.urls import url, include
from rest_framework import routers
from tutorial.quickstart import views
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
8.Setting 변경
Application 추가
vi [project directory]/tutorial/settings.py
INSTALLED_APPS = (
...
'rest_framework', //REST Framework를 추가해준다
)
호스트 세팅변경
허용 호스트 이름 세팅을 하지 않으면 위와 같은 에러가 발생합니다.
Django를 돌리고 있는 서버의 호스트 주소로 접근하려면 허용 호스트 설정을 변경해주어야 합니다.
$vi ./tutorial/settings.py -> Project 폴더내에 settings.py
ALLOWED_HOSTS라고 되어있는 부분에 서버의 도메인 또는 IP주소를 적어줍니다.
9.Django 구동
$ python manage.py runserver
보통 위의 명령어를 통해 Django를 실행하게 됩니다.
위의 명령어가 수행되면 http://localhost:8000에 서버가 구동된다고 안내 메시지가 나오게 됩니다.
즉, 디폴트로 localhost의 8000포트에서 Django 서버가 구동된다는 얘기입니다.
이를 변경하고 싶다면 위의 API 문서에 나와있는대로 runserver 다음에 인자값을 주면 됩니다.
$ python manage.py runserver [domain or IP address]:[port number]
만약 아래와 에러가 발생한다면
다음의 명령어를 통해 서버를 구동할 수 있습니다.
$ python manage.py runserver 0:8000
그리고 서버의 IP주소와 Port번호를 통해 웹브라우저에서 접속하면 아래와 같은 화면이 나오게 됩니다.
'개발을 파헤치다 > Django' 카테고리의 다른 글
Django REST Framework를 사용하다 - 3 (1) | 2018.05.09 |
---|---|
Django REST Framework를 사용하다 - 2 (0) | 2018.05.08 |
ViewSet list의 super() 메서드 파헤치기 (0) | 2018.05.06 |
Django에서 HTML 태그 추출하기 - Beautiful Soup (0) | 2018.05.06 |
PyCharm 개발환경 세팅하기 (0) | 2018.04.30 |