신은섭(Shin Eun Seop)

add base api

No preview for this file type
File mode changed
1 +from django.contrib import admin
2 +
3 +# Register your models here.
1 +from django.apps import AppConfig
2 +
3 +
4 +class RestfulConfig(AppConfig):
5 + name = 'restful'
1 +from django.db import models
2 +
3 +# Create your models here.
1 +"""
2 +serializers
3 +"""
4 +
5 +from django.contrib.auth.models import User, Group
6 +from rest_framework import serializers
7 +
8 +
9 +class UserSerializer(serializers.HyperlinkedModelSerializer):
10 + class Meta:
11 + model = User
12 + fields = ('url', 'username', 'email', 'groups')
13 +
14 +
15 +class GroupSerializer(serializers.HyperlinkedModelSerializer):
16 + class Meta:
17 + model = Group
18 + fields = ('url', 'name')
1 +from django.test import TestCase
2 +
3 +# Create your tests here.
1 +"""
2 +views
3 +"""
4 +
5 +from django.contrib.auth.models import User, Group
6 +from rest_framework import viewsets
7 +from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
8 +
9 +
10 +class UserViewSet(viewsets.ModelViewSet):
11 + """
12 + API endpoint that allows users to be viewed or edited.
13 + """
14 + queryset = User.objects.all().order_by('-date_joined')
15 + serializer_class = UserSerializer
16 +
17 +
18 +class GroupViewSet(viewsets.ModelViewSet):
19 + """
20 + API endpoint that allows groups to be viewed or edited.
21 + """
22 + queryset = Group.objects.all()
23 + serializer_class = GroupSerializer
...\ No newline at end of file ...\ No newline at end of file
1 +"""
2 +Django settings for dcloud project.
3 +
4 +Generated by 'django-admin startproject' using Django 2.0.4.
5 +
6 +For more information on this file, see
7 +https://docs.djangoproject.com/en/2.0/topics/settings/
8 +
9 +For the full list of settings and their values, see
10 +https://docs.djangoproject.com/en/2.0/ref/settings/
11 +"""
12 +
13 +import os
14 +
15 +# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
16 +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
17 +
18 +
19 +# Quick-start development settings - unsuitable for production
20 +# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/
21 +
22 +# SECURITY WARNING: keep the secret key used in production secret!
23 +SECRET_KEY = 'e#usa0n532(ev$(mn-k-f-jjnw6@ecq3g33v9n$rb$r4&nr(+%'
24 +
25 +# SECURITY WARNING: don't run with debug turned on in production!
26 +DEBUG = True
27 +
28 +ALLOWED_HOSTS = []
29 +
30 +
31 +# Application definition
32 +
33 +INSTALLED_APPS = [
34 + 'django.contrib.admin',
35 + 'django.contrib.auth',
36 + 'django.contrib.contenttypes',
37 + 'django.contrib.sessions',
38 + 'django.contrib.messages',
39 + 'django.contrib.staticfiles',
40 + 'rest_framework',
41 +]
42 +
43 +MIDDLEWARE = [
44 + 'django.middleware.security.SecurityMiddleware',
45 + 'django.contrib.sessions.middleware.SessionMiddleware',
46 + 'django.middleware.common.CommonMiddleware',
47 + 'django.middleware.csrf.CsrfViewMiddleware',
48 + 'django.contrib.auth.middleware.AuthenticationMiddleware',
49 + 'django.contrib.messages.middleware.MessageMiddleware',
50 + 'django.middleware.clickjacking.XFrameOptionsMiddleware',
51 +]
52 +
53 +ROOT_URLCONF = 'dcloud.urls'
54 +
55 +TEMPLATES = [
56 + {
57 + 'BACKEND': 'django.template.backends.django.DjangoTemplates',
58 + 'DIRS': [],
59 + 'APP_DIRS': True,
60 + 'OPTIONS': {
61 + 'context_processors': [
62 + 'django.template.context_processors.debug',
63 + 'django.template.context_processors.request',
64 + 'django.contrib.auth.context_processors.auth',
65 + 'django.contrib.messages.context_processors.messages',
66 + ],
67 + },
68 + },
69 +]
70 +
71 +WSGI_APPLICATION = 'dcloud.wsgi.application'
72 +
73 +
74 +# Database
75 +# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
76 +
77 +DATABASES = {
78 + 'default': {
79 + 'ENGINE': 'django.db.backends.sqlite3',
80 + 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
81 + }
82 +}
83 +
84 +
85 +# Password validation
86 +# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
87 +
88 +AUTH_PASSWORD_VALIDATORS = [
89 + {
90 + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
91 + },
92 + {
93 + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
94 + },
95 + {
96 + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
97 + },
98 + {
99 + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
100 + },
101 +]
102 +
103 +
104 +# Internationalization
105 +# https://docs.djangoproject.com/en/2.0/topics/i18n/
106 +
107 +LANGUAGE_CODE = 'en-us'
108 +
109 +TIME_ZONE = 'UTC'
110 +
111 +USE_I18N = True
112 +
113 +USE_L10N = True
114 +
115 +USE_TZ = True
116 +
117 +
118 +# Static files (CSS, JavaScript, Images)
119 +# https://docs.djangoproject.com/en/2.0/howto/static-files/
120 +
121 +STATIC_URL = '/static/'
1 +"""
2 +urls
3 +"""
4 +
5 +from django.conf.urls import url, include
6 +from rest_framework import routers
7 +from tutorial.quickstart import views
8 +
9 +router = routers.DefaultRouter()
10 +router.register(r'users', views.UserViewSet)
11 +router.register(r'groups', views.GroupViewSet)
12 +
13 +# Wire up our API using automatic URL routing.
14 +# Additionally, we include login URLs for the browsable API.
15 +urlpatterns = [
16 + url(r'^', include(router.urls)),
17 + url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
18 +]
1 +"""
2 +WSGI config for dcloud project.
3 +
4 +It exposes the WSGI callable as a module-level variable named ``application``.
5 +
6 +For more information on this file, see
7 +https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 +"""
9 +
10 +import os
11 +
12 +from django.core.wsgi import get_wsgi_application
13 +
14 +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dcloud.settings")
15 +
16 +application = get_wsgi_application()
1 +#!/usr/bin/env python
2 +import os
3 +import sys
4 +
5 +if __name__ == "__main__":
6 + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dcloud.settings")
7 + try:
8 + from django.core.management import execute_from_command_line
9 + except ImportError as exc:
10 + raise ImportError(
11 + "Couldn't import Django. Are you sure it's installed and "
12 + "available on your PYTHONPATH environment variable? Did you "
13 + "forget to activate a virtual environment?"
14 + ) from exc
15 + execute_from_command_line(sys.argv)