8000 try to implement interface API using django rest framework, not done · python012/guest@4fe5d50 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4fe5d50

Browse files
committed
try to implement interface API using django rest framework, not done
1 parent faf32fd commit 4fe5d50

File tree

4 files changed

+91
-4
lines changed

4 files changed

+91
-4
lines changed

guest/settings.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
'django.contrib.auth.middleware.AuthenticationMiddleware',
5050
'django.contrib.messages.middleware.MessageMiddleware',
5151
'django.middleware.clickjacking.XFrameOptionsMiddleware',
52+
'rest_framework',
53+
'sign',
5254
]
5355

5456
ROOT_URLCONF = 'guest.urls'
@@ -80,11 +82,11 @@
8082
# 'ENGINE': 'django.db.backends.sqlite3',
8183
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
8284
'ENGINE': 'django.db.backends.mysql',
83-
'HOST': '127.0.0.1',
85+
'HOST': '--------',
8486
'PORT': '3306',
85-
'NAME': 'guest_test',
87+
'NAME': 'guest_test01',
8688
'USER': 'root',
87-
'PASSWORD': 8000 '123456',
89+
'PASSWORD': '-----',
8890
'OPTIONS': {
8991
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
9092
},
@@ -130,3 +132,10 @@
130132
# https://docs.djangoproject.com/en/1.10/howto/static-files/
131133

132134
STATIC_URL = '/static/'
135+
136+
137+
REST_FRAMEWORK = {
138+
'DEFAULT_PERMISSION_CLASSES': (
139+
'rest_framework.permissions.IsAuthenticated',
140+
)
141+
}

guest/urls.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,16 @@
1515
"""
1616
from django.conf.urls import url, include
1717
from django.contrib import admin
18-
from sign import views
18+
from sign import views, views_if_rest
19+
20+
from rest_framework import routers
21+
22+
router = routers.DefaultRouter()
23+
router.register(r'users', views_if_rest.UserViewSet)
24+
router.register(r'groups', views_if_rest.GroupViewSet)
25+
router.register(r'events', views_if_rest.EventViewSet)
26+
router.register(r'guests', views_if_rest.GuestViewSet)
27+
1928

2029
urlpatterns = [
2130
url(r'^admin/', admin.site.urls),
@@ -31,4 +40,6 @@
3140
url(r'^sign_index_action/(?P<eid>[0-9]+)/$', views.sign_index_action),
3241
url(r'^logout/$', views.logout),
3342
url(r'^api/', include('sign.urls', namespace="sign")),
43+
url(r'^', include(router.urls)),
44+
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
3445
]

sign/serializers.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from django.contrib.auth.models import User, Group
2+
from rest_framework import serializers
3+
from sign.models import Event, Guest
4+
5+
6+
7+
class UserSerializer(serializers.HyperlinkedModelSerializer):
8+
class Meta:
9+
model = User
10+
fields = ('url', 'username', 'email', 'groups')
11+
12+
13+
class GroupSerializer(serializers.HyperlinkedModelSerializer):
14+
class Meta:
15+
model = Group
16+
fields = ('url', 'name')
17+
18+
19+
class EventSerializer(serializers.HyperlinkedModelSerial ED4F izer):
20+
class Meta:
21+
model = Event
22+
fields = ('url', 'name', 'address', 'start_time', 'attendees_limit', 'status')
23+
24+
25+
class GuestSerializer(serializers.HyperlinkedModelSerializer):
26+
class Meta:
27+
model = Guest
28+
fields = ('url', 'realname', 'phone', 'email', 'sign', 'event')

sign/views_if_rest.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
from django.contrib.auth.models import Group, User
2+
from django.shortcuts import render
3+
from rest_framework import viewsets
4+
5+
from sign.models import Event, Guest
6+
from sign.serializers import (EventSerializer, GroupSerializer, GuestSerializer,
7+
UserSerializer)
8+
9+
10+
class UserViewSet(viewsets.ModelViewSet):
11+
"""
12+
API endpoint that allows users to 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 viewed or edited.
21+
"""
22+
queryset = Group.objects.all()
23+
serializer_class = GroupSerializer
24+
25+
26+
class EventViewSet(viewsets.ModelViewSet):
27+
"""
28+
API endpoint that allows events to viewed or edited.
29+
"""
30+
queryset = Event.objects.all()
31+
serializer_class = EventSerializer
32+
33+
34+
class GuestViewSet(viewsets.ModelViewSet):
35+
"""
36+
API endpoint that allows guests to viewed or edited.
37+
"""
38+
queryset = Guest.objects.all()
39+
serializer_class = GuestSerializer

0 commit comments

Comments
 (0)
0