1 安装依赖库

framework官方网站
https://www.django-rest-framework.org/
里面对于各个功能介绍的很详细,可以作为学习文档使用
Djngo REST framework入门

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文件中设置

Djngo REST framework入门
在官方文档有,大家可以自己查阅下

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文件,设置序列化

Djngo REST framework入门
在官方文档打开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文件,在浏览器窗口打开

相关文章:

  • 2022-12-23
  • 2021-08-23
  • 2021-06-21
  • 2022-12-23
  • 2021-10-25
  • 2022-02-21
猜你喜欢
  • 2021-12-09
  • 2021-12-02
  • 2022-12-23
  • 2021-06-20
  • 2022-02-18
  • 2021-04-17
相关资源
相似解决方案