Django REST framework使用小记
利用Django + REST framework 生成(单条,多条)数据api
1. 创建Django项目
django-admin startproject drfTest
2.创建app
python manage.py startapp apitest
3. models.py
from django.db import models
class Product(models.Model):
created = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=100, default='')
describe = models.CharField(max_length=500, default='')
price = models.FloatField()
isDelete = models.BooleanField(default=False)
class Meta:
ordering = ('created',)
4.注册应用, 迁移&创建超级管理员
INSTALLED_APPS = [
.......
'rest_framework',
'api',
]
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
5.admin.py注册models
from django.contrib import admin
from .models import Product
class ProductAdmin(admin.ModelAdmin):
list_display = ['name','describe','price','created','isDelete']
admin.site.register(Product, ProductAdmin)
6. 运行测试服务器&添加数据
7.在app下新建serializers.py并编辑
from rest_framework import serializers
from .models import Product
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ('id', 'created', 'name', 'describe', 'price', 'isDelete')
8.修改 views.py
from .models import Product
from .serializers import ProductSerializer
from rest_framework import generics
''' 获取一些数据'''
class ProductList(generics.ListCreateAPIView):
queryset = Product.objects.all()
# queryset = Product.objects.filter(pk__gt=2)
serializer_class = ProductSerializer
'''获取一条数据'''
class ProductDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Product.objects.all()
serializer_class = ProductSerializer
9.修改urls
drfTest/urls.py
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', include('apitest.urls'))
]
apitest/urls.py
from django.conf.urls import url
from rest_framework.urlpatterns import format_suffix_patterns
from . import views
urlpatterns = [
url(r'^api/$', views.ProductList.as_view()),
url(r'^api/(?P<pk>[0-9]+)/$', views.ProductDetail.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)
10.运行测试服务器, 测试api
python manage.py runserver
10.1 查看所有数据:
http://127.0.0.1:8000/api/