目录
一、安装
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')
运行项目
版权声明:本文为weixin_41635393原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。