DRF框架(一)——get/post接口

目錄

 

一、安裝

二、API接口

創建項目

創建應用

項目配置 settings.py

創建超級管理員

創建數據庫模型 /rest_api/models.py

創建模型後,執行數據庫遷移

後臺管理 /rest_api/admin.py

運行

Admin

配置主路由 urls.py

配置應用下路由 /rest_api/urls.py

編寫視圖 /rest_api/views.py

運行項目


一、安裝

pip install djangorestframework  # rest framework框架
pip install coreapi pygments markdown # 自動化接口文檔

二、API接口

創建項目

django-admin startproject mysite

創建應用

python manage.py startapp rest_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',    #添加應用
    'rest_api',
]

創建超級管理員

python manage.py createsuperuser

創建數據庫模型 /rest_api/models.py

from django.db import models

# Create your models here.
class Book(models.Model):
    title = models.CharField(max_length=64)
    price = models.DecimalField(max_digits=5, decimal_places=2)

    class Meta:
        db_table = 'old_boy_book'
        verbose_name = '書籍'
        verbose_name_plural = verbose_name
    
    # 規範格式
    def __str__(self):
        return '《%s》' % self.title

創建模型後,執行數據庫遷移

python manage.py makemigrations # 生成數據庫遷移文件
python manage.py migrate # 執行數據庫遷移

後臺管理 /rest_api/admin.py

from django.contrib import admin
from . import models
# Register your models here.

# 將Book方法註冊到admin中
admin.site.register(models.Book)

運行

python manage.py runserver

Admin

從瀏覽器打開網址http://127.0.0.1:8000/admin/進入到後臺管理,添加你的數據

配置主路由 urls.py

from django.contrib import admin
from django.conf.urls import url, include

urlpatterns = [
    url('^admin/', admin.site.urls),
    url('^restApi/', include('rest_api.urls')),    # 添加應用的路由地址,路由分發
]

配置應用下路由 /rest_api/urls.py

from django.conf.urls import url
from . import views    #.表示當前應用


urlpatterns = [
    url(r'^books/$', views.Book.as_view()),
    url(r'^books/(?P<pk>.*)/$', views.Book.as_view())
]

編寫視圖 /rest_api/views.py

from rest_framework.views import APIView
from rest_framework.response import Response


class Book(APIView):
    def get(self, *args, **kwargs):
        pk = kwargs.get('pk')
        if pk:
            book_obj = models.Book.objects.get(pk=pk)
            return Response({
               'status': 0,
               'msg': 'ok',
               'results': {
                   'title': book_obj.title,
                   'price': book_obj.price
               }
            })
        return Response('get ok')

    def post(self, request, *args, **kwargs):
        # url拼接參數:只有一種傳參方式就是拼接參數
        print(request.query_params)
        # 數據包參數:有三種傳參方式:form-data、urlencoding、json
        print(request.data)
        return Response('post ok')

運行項目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章