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/
在这里插入图片描述

10.2 查看id为1的数据

http://127.0.0.1:8000/api/1/
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值