django-admin[options]: 관리작업을 위한 커맨드 라인
django -m django [options]
django [manage.py](http://manage.py) [options]
startapp: 앱을 생성한다
runserver: 서버를 실행한다
createsuperuser: 관리자를 생성한다
makemigrations app: app의 모델 변경사항을 체크한다
migrate: 변경 사항을 DB에 반영한다
shell: 쉘을 통해 데이터를 확인한다.
cellectstatic: 정적자원(css,html 등) 재수집(동기화)
(pycharm)file → settings → python interpreter → 톱니바퀴 → venv 설정 후 ok
ALLOWED_HOSTS = ['ip주소','url주소']
ALLOWED_HOSTS = ['*'] # AWS에 올린다던지 내 컴퓨어터에서 서버를 띄우고 학교 등 접속이 가능
or /> python manage.py runserver 0.0.0.0:8000
INTSALLED_APP = [
'rest_framework',
]
urlpatterns = [
path('api-auth/', include(rest_framework.urls'))
]
REST_FRAMEWORK = {
'DEFAULT_PERMISSIONI_CLASSED': [
'rest_framework.permissions.DjangoModelPermissionOrAnonReadOnly'
]
} # pagination의 크기를 지정할 수도 있고, API 접근권한을 지정할 수 도 있다.
1) example/url.py
from django.contrib.auth.models import User
from django.urls import include, path
from rest_framework import routers, serializers, viewsets
# Serializers define the API representation 모델 데이터를 JSON 등의 직렬화된 형식으로 변환
class User Serializer(serializers.HyperLinkedModelSerializer):
class Meta:
model = User
fields = ['url', 'username', 'email', 'is_staff']
# ViewSets define the view behavior 모델의 데이터를 조회, 생성, 업데이트 삭제하는 API 뷰의 동작
class UserViewSet(viewsets.ModelViewSet):
queryset = User.object.all()
serializer_class = UserSerializer
#Routers provide a way of automatically determining the URL conf.
# UserViewSet 뷰셋을 users URL에 등록합니다. 이렇게하면 users/ URL을 통해 User 모델의 데이터
# 를 조회, 생성 ,업데이트, 삭제할 수 있는 API가 생성
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
# Wire up our API using automatical URL routing
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
path('', include(router. urls)),
path('api-auth/', include('rest_framework.urls', namespace = 'rest_framework')),
]
2) settings.py
INSTALLED_APPS = [
... # Make sure to include the default installed apps here.
'rest_framework',
]
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly',
]
}