温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python Django如何实现增删改查

发布时间:2022-02-19 14:25:02 来源:亿速云 阅读:273 作者:小新 栏目:开发技术

这篇文章主要介绍python Django如何实现增删改查,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

python Django如何实现增删改查

1.先创建个app子级

python .\manage.py startapp app01

然后创建数据模型

app01下的
modules.py文件

from django.db import models # Create your models here. class UserInfo(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.迁移数据库

python manage.py makemigrations 和 python manage.py migrate

3.写路由url

from django.contrib import admin from django.urls import path,include from app01 import views urlpatterns = [     # 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页面编写增删改查

from django.shortcuts import render,HttpResponse from rest_framework.views import APIView # Create your views here. from django import views from app01.models import UserInfo from rest_framework.response import Response from app01.ser import APIViewUserInfo class addUser(APIView):     def post(self,request):         obj=APIViewUserInfo(data=request.data)         if obj.is_valid():             obj.save()             return Response({"data":obj.data, "status" : 201,"message":"添加用户成功"})         return Response(data=obj.errors,status=400) class UserList(APIView):     def get(self,request):         obj=UserInfo.objects.all()         ser=APIViewUserInfo(instance=obj,many=True)         return Response(ser.data) class upDateUser(APIView):     def post(self,request):         print(request.data.get('id'))         i=request.data.get('id')         try:             user=UserInfo.objects.get(id=i)         except Exception as e:             return Response(data='不存在', status=201)         # 创建序列化对象,并将要反序列化的数据传递给data构造参数,进而进行验证         user.password=request.data.get('password')         if request.data.get('name')!='':             print(request.data.get('name')=='')             user.name=request.data.get('name')         user.save()         return Response(status=400) class deluser(APIView):     def post(self,request):         id=request.data.get('id')         UserInfo.objects.filter(id=id).delete()         return Response({"msg":'删除成功',"state":"true"}) # def index(request): #     return HttpResponse("欢迎使用") # # # def user_list(request): #     return render(request,"user_list.html") # # class ApiLogin(APIView): #     def get(self,request): #         return HttpResponse('get') #     def post(self,request): #         UserInfo.objects.create(name='张三',password='123456',age=15,tel='1234567891') #         obj=UserInfo.objects.all() #         print(obj) #         return HttpResponse('post') # # class ApiDel(APIView): #     def post(self,request): #         UserInfo.objects.filter(id=4).delete() #         return HttpResponse('删除成功')

5.序列化 反序列化

# -*- coding: utf-8 -*- from rest_framework import serializers from app01.models import UserInfo class APIViewUserInfo(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)     class Meta:         model = UserInfo     # 自定义显示 多对多 字段  # 定义创建语法:ser.save()执行,就会立刻调用create方法用来创建数据     def create(self, validated_data):         '''validated_data: 表单或者vue请求携带的json:{"username":"zhangsan","password":"123456"}'''         return self.Meta.model.objects.create(**validated_data)

以上是“python Django如何实现增删改查”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI