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')

运行项目

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