这篇文章主要介绍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 adminfrom django.urls import path,includefrom app01 import viewsurlpatterns = [ # 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,HttpResponsefrom rest_framework.views import APIView# Create your views here.from django import viewsfrom app01.models import UserInfofrom rest_framework.response import Responsefrom app01.ser import APIViewUserInfoclass 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 serializersfrom app01.models import UserInfoclass 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如何实现增删改查”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!