Django api web_api rest_framework 簡單例項
阿新 • • 發佈:2020-06-21
Django rest_framework 簡單例項
官方介紹:
Django REST框架是用於構建Web API的功能強大且靈活的工具包。
您可能要使用REST框架的一些原因:
- 該網站可瀏覽API是你的開發人員一個巨大的可用性勝利。
- 身份驗證策略,包括OAuth1a和OAuth2的軟體包。
- 支援ORM和非ORM資料來源的序列化。
- 完全可自定義- 如果您不需要更強大的功能,請僅使用基於函式的常規檢視。
- 廣泛的文件資料以及強大的社群支援。
- 由Mozilla,Red Hat,Heroku和Eventbrite等國際知名公司使用和信任。
開始使用
環境需要:djangorestframework,Django
pip install djangorestframework
pip install Django
新建Django專案-本次案例專案名:Students_api
新建App-本次App名:student1
Students_api\settings.py 配置
INSTALLED_APPS = [ ‘django.contrib.admin‘,‘django.contrib.auth‘,‘django.contrib.contenttypes‘,‘django.contrib.sessions‘,‘django.contrib.messages‘,‘django.contrib.staticfiles‘,‘rest_framework‘,‘student1‘ ] #資料庫使用MySQL 請修改成自己的配置使用 DATABASES = { ‘default‘: { ‘ENGINE‘: ‘django.db.backends.mysql‘,‘ROOT‘:‘127.0.0.1‘,‘PORT‘:3306,‘USER‘:‘root‘,‘PASSWORD‘:‘123‘,‘NAME‘:‘student_api‘,} }
student1\models.py 配置
from django.db import models # Create your models here. class Student(models.Model): sname = models.CharField(max_length=10) sbirth = models.DateField() smajor = models.CharField(max_length=20) sclass = models.CharField(max_length=20) sid = models.CharField(max_length=20) score = models.FloatField()
資料庫欄位:
student1\serializer.py
from rest_framework import serializers
from .models import Student
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = ("sname","sbirth","smajor","sclass","sid","score")
student1\views.py
from django.shortcuts import render
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework import generics
from .models import Student
from .serializer import StudentSerializer
# Create your views here.
class StudentView(APIView):
def get(self,request,format=None):
sid = request.GET.get(‘sid‘)
if sid is not None:
student = Student.objects.filter(pk=sid)
else:
student = Student.objects.all()
serializer = StudentSerializer(student,many=True)
return Response(serializer.data)
Students_api\urls.py
from django.urls import path,include
from student1 import views
urlpatterns = [
path(‘‘,views.StudentView.as_view(),name=‘allstudent‘),]