python Django如何实现增删改查(django,python,开发技术)

时间:2024-04-29 08:07:52 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

python Django如何实现增删改查

1.先创建个app子级

python.\manage.pystartappapp01

然后创建数据模型

app01下的
modules.py文件

fromdjango.dbimportmodels#Createyourmodelshere.classUserInfo(models.Model):name=models.CharField(max_length=32)password=models.CharField(max_length=12)age=models.IntegerField()tel=models.IntegerField(max_length=11)

配置数据库

'default':{'ENGINE':'django.db.backends.mysql','NAME':'数据库名','USER':'数据库用户名','PASSWORD':'密码','HOST':'127.0.0.1','PORT':'3306',}

2.迁移数据库

pythonmanage.pymakemigrations和pythonmanage.pymigrate

3.写路由url

fromdjango.contribimportadminfromdjango.urlsimportpath,includefromapp01importviewsurlpatterns=[#path('admin/',admin.site.urls),#path('index/',views.index),#path('user/list/',views.user_list),#path('login/',views.ApiLogin.as_view()),#path('del/',views.ApiDel.as_view()),path('add/',views.addUser.as_view()),path('user/',views.UserList.as_view()),path('updateuser/',views.upDateUser.as_view()),path('del/',views.deluser.as_view()),]

4.view页面编写增删改查

fromdjango.shortcutsimportrender,HttpResponsefromrest_framework.viewsimportAPIView#Createyourviewshere.fromdjangoimportviewsfromapp01.modelsimportUserInfofromrest_framework.responseimportResponsefromapp01.serimportAPIViewUserInfoclassaddUser(APIView):defpost(self,request):obj=APIViewUserInfo(data=request.data)ifobj.is_valid():obj.save()returnResponse({"data":obj.data,"status":201,"message":"添加用户成功"})returnResponse(data=obj.errors,status=400)classUserList(APIView):defget(self,request):obj=UserInfo.objects.all()ser=APIViewUserInfo(instance=obj,many=True)returnResponse(ser.data)classupDateUser(APIView):defpost(self,request):print(request.data.get('id'))i=request.data.get('id')try:user=UserInfo.objects.get(id=i)exceptExceptionase:returnResponse(data='不存在',status=201)#创建序列化对象,并将要反序列化的数据传递给data构造参数,进而进行验证user.password=request.data.get('password')ifrequest.data.get('name')!='':print(request.data.get('name')=='')user.name=request.data.get('name')user.save()returnResponse(status=400)classdeluser(APIView):defpost(self,request):id=request.data.get('id')UserInfo.objects.filter(id=id).delete()returnResponse({"msg":'删除成功',"state":"true"})#defindex(request):#returnHttpResponse("欢迎使用")###defuser_list(request):#returnrender(request,"user_list.html")##classApiLogin(APIView):#defget(self,request):#returnHttpResponse('get')#defpost(self,request):#UserInfo.objects.create(name='张三',password='123456',age=15,tel='1234567891')#obj=UserInfo.objects.all()#print(obj)#returnHttpResponse('post')##classApiDel(APIView):#defpost(self,request):#UserInfo.objects.filter(id=4).delete()#returnHttpResponse('删除成功')

5.序列化 反序列化

#-*-coding:utf-8-*-fromrest_frameworkimportserializersfromapp01.modelsimportUserInfoclassAPIViewUserInfo(serializers.Serializer):"""图书数据序列化器"""id=serializers.IntegerField(label='ID',read_only=True)#主键序列化#第一:普通字段序列化name=serializers.CharField(label='名称',max_length=20)password=serializers.CharField(label='密码')age=serializers.IntegerField(label='年龄',required=False)tel=serializers.IntegerField(label='电话',required=False)##第二:一对多字段序列化#heroinfo_set=serializers.PrimaryKeyRelatedField(read_only=True,many=True)##第三:自定义显示(显示多对多)#xxx=serializers.SerializerMethodField(read_only=True)classMeta:model=UserInfo#自定义显示多对多字段#定义创建语法:ser.save()执行,就会立刻调用create方法用来创建数据defcreate(self,validated_data):'''validated_data:表单或者vue请求携带的json:{"username":"zhangsan","password":"123456"}'''returnself.Meta.model.objects.create(**validated_data)
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:python Django如何实现增删改查的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:MySQL如何实现JDBC下一篇:

13 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18