标签:get eg response import pk data self drf
models
from django.db import models
class EgTest(models.Model):
eg_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50, verbose_name='名称')
sort = models.CharField(max_length=50, verbose_name='种类')
memo = models.CharField(max_length=200, verbose_name='备注')
content = models.TextField(verbose_name='内容')
class Meta:
db_table = 'eg_test'
verbose_name = '模板'
serializers
from rest_framework import serializers
from eg_test.models import EgTest
class EgTesterializer(serializers.ModelSerializer):
class Meta:
model = EgTest
fields = '__all__'
tests
import json
from django.test import TestCase, Client
from rest_framework.test import APIClient
class TempaleTestCase(TestCase):
def test_tpl(self):
client = Client()
# 获取全部
response = client.get('http://127.0.0.1:8000/tests/')
self.assertEqual(response.status_code, 200, "get tpl error")
# 添加记录
data = dict(
name="流程0", sort="第三方0", memo="随便0", content="流程图0"
)
url = 'http://127.0.0.1:8000/tests/'
response = client.post(url, data)
retdata = response.json()['data']
self.assertEqual(response.status_code, 200, "post tmplate error")
self.assertTrue(retdata is not None)
eg_id = str(retdata['id'])
# 获取单一
url = 'http://127.0.0.1:8000/tests/{}/'.format(eg_id)
response = client.get(url)
self.assertEqual(response.status_code, 200, "get tpl error")
# 修改单一
data = dict(
name='1111111'
)
url = 'http://127.0.0.1:8000/tests/{}/'.format(eg_id)
response = client.get(url,data)
self.assertEqual(response.status_code, 200, "put tpl error")
# 删除单一
url = 'http://127.0.0.1:8000/tests/{}/'.format(eg_id)
response = client.delete(url)
self.assertEqual(response.status_code, 200, "delete message error")
views
from django.http import Http404
from rest_framework import status
from rest_framework.views import APIView
from rest_framework.response import Response
from eg_test.models import EgTest
from eg_test.serializers import EgTesterializer
"""
@apiDefine workgroups 工作阶段
"""
class TestList(APIView):
def get(self, request, format=None):
tpls = EgTest.objects.all()
serializer = EgTesterializer(tpls, many=True)
return Response({"data":serializer.data})
def post(self, request, format=None):
serializer = EgTesterializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response({"data":{'id': serializer.instance.pk}})
class TestDetail(APIView):
def get_object(self, pk):
try:
return EgTest.objects.get(pk=pk)
except EgTest.DoesNotExist:
raise Http404
def get(self, request, pk, format=None):
tpl = self.get_object(pk)
serializer = EgTesterializer(tpl)
return Response({"data":serializer.data})
def delete(self, request, pk, format=None):
tpl = self.get_object(pk)
tpl.delete()
return Response({'id': pk})
def put(self, request, pk, format=None):
tpl = self.get_object(pk)
serializer = EgTesterializer(tpl, data=request.data,partial=True)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response({'id': serializer.instance.pk})
标签:get,eg,response,import,pk,data,self,drf 来源: https://blog.csdn.net/wsc_0506/article/details/97525834
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。