python drf框架的使用


1. 安装 ↓

pip install djangorestframework

2. 在Django项目中使用DRF框架进行开发时,需要将rest_framework在setting.py中INSTALLED_APPS中进行注册。

INSTALLED_APPS = [

    'rest_framework',
]
setting.py

3. 大路由配置

from django.urls import path,include

urlpatterns = [
    path('app01/',include('app01.urls')),    # 新建app01
]
untitled/urls.py

4. 新建app01在setting.py中的配置:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
    'app02.apps.App02Config',
    'corsheaders',
    'rest_framework',
]
untitled/setting.py

5. 小路由配置

from django.urls import path
from . import views

urlpatterns = [
    path('getcls/',views.Get_cls_add_good.as_view()),
]
app01/urls.py

6. 序列化器:

在新建app01中创建serializres.py,造作如下:

from rest_framework import serializers
from app01.models import Info

class InfoSerializer(serializers.ModelSerializer):
    class Meta:
        model=Info      #   models.py中导入的模型
        #  把所有字段都要跟序列化器交互
        fields='__all__'
        #  指定字段跟序列化器交互
        #  fields=("id","name")
serializres.py

7. 序列化器的使用

from rest_framework.views import APIView
from rest_framework.response import Response
from app01.serializres import InfoSerializer
from app01.models import Info

class InfoView(APIView):     # 继承APIView
    def get(self,request):
        #  获取方式不同,
        #  request.data
        data=request.query_params  # 或取get请求
        try:
            user =Info.objects.all()
            serlia=InfoSerializer(user,many=True)
            data=serlia.data
            return Response(status=200,data={"code":200,"data":data})
        except Exception as e:
            return Response(status=200,data={"code":500})

    def post(self,request):
        data=request.data
        users=InfoSerializer(data=data)
        users.is_valid()     # 判断传来数据类型是否和数据表中一致
        users.save()      # 获取的数据保存到数据库
        return Response(status=200,data={"code:200"})
View.py

 


					


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM