Djngo REST framework入门

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文件,在浏览器窗口打开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值