Django Rest Framework
จาก Morange Wiki
รุ่นแก้ไขเมื่อ 05:10, 8 มิถุนายน 2559 โดย Patcharapun (คุย | มีส่วนร่วม)
Django REST framework
Quickstart
Quickstart เป็นหัวข้อสำหรับคนที่เริ่มทำเว็บ API และ REST framework โดยจะเป็นการสร้าง API อย่างง่าย เพื่อให้ผู้ดูแลระบบสามารถ เพิ่ม ลบ แก้ไข ผู้ใช้งานได้
ขั้นตอนการตั้งค่า
- ตั้งค่าโปรเจคใหม่ด้วยการสร้าง Directory ชื่อว่า tutorial และ สร้างแอปพลิเคชั่นใหม่ชื่อ quickstart โดยมีกระบวนการดังต่อไปนี้
1. สร้าง Folder ชื่อ tutorial mkdir tutorial cd tutorial 2. สร้าง Virtual environment (virtualenv) virtualenv env source env/bin/activate 3. ติดตั้ง Django REST framework ลงใน virtualenv pip install django pip install djangorestframework 4. ตั้งค่าโปรเจคและแอปพลิเคชั่นใน Django django-admin.py startproject tutorial . # Note the trailing '.' character cd tutorial django-admin.py startapp quickstart cd ..
- ในขั้นตอนต่อไปนี้เป็นการเชื่อมต่อฐานข้อมูลให้กับโปรเจคโดยการ migrate
python manage.py migrate
- ต่อมาเป็นการสร้าง user โดยมี username : admin และ password : password123 เพื่อเอาไว้เข้าใช้ระบบ
python manage.py createsuperuser
Serializers
- ก่อนอื่นเราจะต้องกำหนด serializers. และ สร้างโมดูลใหม่ โดยสร้างไฟล์ชื่อ serializers.py ใน path tutorial/quickstart/serializers.py
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')
Views
- ต่อมาจะเป็นการเข้าไปตั้งค่าไฟล์ 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
URL
- ต่อมาจะเป็นการเข้าไปตั้งค่าไฟล์ tutorial/urls.py เพื่อตั้งค่า URL ให้กับ โปรเจค
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')) ]
Settings
- เพิ่มชื่อ แอปพลิเคชั่น ลงใน Module ชือ INSTALLED_APPS ในไฟล์ tutorial/settings.py โดยเพิ่ม 'rest_framework', ต่อท้ายดังตัวอย่าง
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', ) REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',), 'PAGE_SIZE': 10 }
เป็นการสำเร็จ ต่อไปจะเป็นการเริ่มทดสอบ API โดยการ Run Server
python ./manage.py runserver
ผลลัพธ์
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย
มีข้อผิดพลาดในการสร้างรูปย่อ: ไฟล์สูญหาย
.
- สร้าง Folder ชื่อ tutorial
อ้างอิง
Tutorial
1 - Serialization
2 - Requests & Responses
3 - Class based views
4 - Authentication & permissions
5 - Relationships & hyperlinked APIs
6 - Viewsets & routers