8000 implement interface API using django rest framework, done · python012/guest@864d8a6 · GitHub
[go: up one dir, main page]

Skip to content

Commit 864d8a6

Browse files
committed
implement interface API using django rest framework, done
1 parent 4fe5d50 commit 864d8a6

File tree

6 files changed

+32
-11
lines changed

6 files changed

+32
-11
lines changed

README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,22 @@ Installed apps:
2828
## Note for Testing
2929

3030
- To support interface API test and avoid `CSRF varification failed` error, the line of `django.middleware.csrf.CsrfViewMiddleware` of MIDDLEWARE in `settings.py` is disabled.
31+
- Django rest framework is imported to implement interface API, try this(with HTTPie):
32+
``` bash
33+
C:\Users\admin>http -a admin:admin01234 http://127.0.0.1:8000/rest/
34+
HTTP/1.1 200 OK
35+
Allow: GET, HEAD, OPTIONS
36+
Content-Length: 183
37+
Content-Type: application/json
38+
Date: Tue, 26 Jun 2018 09:01:51 GMT
39+
Server: WSGIServer/0.2 CPython/3.6.4
40+
Vary: Accept, Cookie
41+
X-Frame-Options: SAMEORIGIN
42+
43+
{
44+
"events": "http://127.0.0.1:8000/rest/events/",
45+
"groups": "http://127.0.0.1:8000/rest/groups/",
46+
"guests": "http://127.0.0.1:8000/rest/guests/",
47+
"users": "http://127.0.0.1:8000/rest/users/"
48+
}
49+
```

guest/settings.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,17 @@
3939
'django.contrib.staticfiles',
4040
'sign',
4141
'bootstrap3',
42+
'rest_framework',
4243
]
4344

4445
MIDDLEWARE = [
4546
'django.middleware.security.SecurityMiddleware',
4647
'django.contrib.sessions.middleware.SessionMiddleware',
4748
'django.middleware.common.CommonMiddleware',
48-
# 'django.middleware.csrf.CsrfViewMiddleware', # debugging for interface testing
49+
'django.middleware.csrf.CsrfViewMiddleware', # debugging for interface testing
4950
'django.contrib.auth.middleware.AuthenticationMiddleware',
5051
'django.contrib.messages.middleware.MessageMiddleware',
5152
'django.middleware.clickjacking.XFrameOptionsMiddleware',
52-
'rest_framework',
53-
'sign',
5453
]
5554

5655
ROOT_URLCONF = 'guest.urls'
@@ -82,11 +81,11 @@
8281
# 'ENGINE': 'django.db.backends.sqlite3',
8382
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
8483
'ENGINE': 'django.db.backends.mysql',
85-
'HOST': '--------',
84+
'HOST': '---------',
8685
'PORT': '3306',
8786
'NAME': 'guest_test01',
8887
'USER': 'root',
89-
'PASSWORD': '-----',
88+
'PASSWORD': '---------',
9089
'OPTIONS': {
9190
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
9291
},

guest/urls.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
url(r'^sign_index_action/(?P<eid>[0-9]+)/$', views.sign_index_action),
4141
url(r'^logout/$', views.logout),
4242
url(r'^api/', include('sign.urls', namespace="sign")),
43-
url(r'^', include(router.urls)),
43+
44+
url(r'^rest/', include(router.urls)),
4445
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
4546
]

sign/serializers.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from sign.models import Event, Guest
44

55

6-
76
class UserSerializer(serializers.HyperlinkedModelSerializer):
87
class Meta:
98
model = User

sign/views_if.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
from django.core.exceptions import ObjectDoesNotExist, ValidationError
44
from django.db.utils import IntegrityError
55
from django.http import JsonResponse
6+
from django.views.decorators.csrf import csrf_exempt
67

78
from sign.models import Event, Guest
89

910

11+
@csrf_exempt
1012
def add_event(request):
1113
eid = request.POST.get('eid', '')
1214
name = request.POST.get('name', '')
@@ -43,6 +45,7 @@ def add_event(request):
4345
return JsonResponse({'status': 200, 'message': 'add event success'})
4446

4547

48+
@csrf_exempt
4649
def add_guest(request):
4750
eid = request.POST.get('eid', '')
4851
realname = request.POST.get('realname', '')
@@ -93,6 +96,7 @@ def add_guest(request):
9396
return JsonResponse({'status': 200, 'message': 'add event success'})
9497

9598

99+
@csrf_exempt
96100
def get_event_list(request):
97101
eid = request.GET.get('eid', '')
98102
name = request.GET.get('name', '')
@@ -153,6 +157,7 @@ def get_event_list(request):
153157
return JsonResponse({'status': 200, 'message': 'success', 'data': datas})
154158

155159

160+
@csrf_exempt
156161
def get_guest_list(request):
157162
eid = request.GET.get('eid', '')
158163
phone = request.GET.get('phone', '')
@@ -189,6 +194,7 @@ def get_guest_list(request):
189194
return JsonResponse({'status': 10022, 'message': 'query result is empty'})
190195

191196

197+
@csrf_exempt
192198
def user_sign(request):
193199
eid = request.POST.get('eid', '')
194200
phone = request.POST.get('phone', '')

sign/views_if_rest.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
from django.contrib.auth.models import Group, User
2-
from django.shortcuts import render
32
from rest_framework import viewsets
43

54
from sign.models import Event, Guest
6-
from sign.serializers import (EventSerializer, GroupSerializer, GuestSerializer,
7-
UserSerializer< 53AE /span>)
8-
5+
from sign.serializers import EventSerializer, GroupSerializer, GuestSerializer, UserSerializer
96

107
class UserViewSet(viewsets.ModelViewSet):
118
"""

0 commit comments

Comments
 (0)
0