1 安装依赖库
framework官方网站
https://www.django-rest-framework.org/
里面对于各个功能介绍的很详细,可以作为学习文档使用
pip install djangorestframework
pip install markdown # Markdown support for the browsable API.
pip install django-filter # Filtering support
pip install coreapi
pip install django-crispy-forms
pip install django-guardian
2 在setting文件中设置
在官方文档有,大家可以自己查阅下
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'crispy_forms', # 用于优化表单页面
]
urlpatterns = [
path('admin/', admin.site.urls),
path('api-auth/',include('rest_framework.urls',namespace='rest_framework')),
re_path('media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),
3 示例:商品列表
1 models文件生成模型
class Goods(models.Model):
"""
商品
"""
goods_sn = models.CharField(max_length=50, default="", verbose_name="商品唯一货号")
name = models.CharField(max_length=100, verbose_name="商品名")
click_num = models.IntegerField(default=0, verbose_name="点击数")
ship_free = models.BooleanField(default=True, verbose_name="是否承担运费")
goods_front_image = models.ImageField(upload_to="goods/images/", null=True, blank=True, verbose_name="封面图")
add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")
class Meta:
verbose_name = '商品'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
生成数据库表格,加入数据
4 新建serializers.py文件,设置序列化
在官方文档打开Tutorial,点击Serialization,点击Using ModelSerializers就可以看到
from rest_framework import serializers
class GoodsSerializer(serializers.ModelSerializer):
category = CategorySerializer()
class Meta:
model = Goods
# fields = ('name', 'click_num', 'goods_front_image','add_time')
fields = '__all__' #将所有字段序列化
3 views文件
from .serializers import GoodsSerializer #将自定义的序列化文件导入进来
class GoodsListView(APIView):
"""
List all goods.
"""
def get(self, request, format=None):
goods = Goods.objects.all()[:10]
serializer = GoodsSerializer(goods, many=True)
return Response(serializer.data)
5 设置urls文件
re_path('goods/$',GoodsListView.as_view(),name='goodslist'),
4 运行manage.py文件,在浏览器窗口打开