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增删改查 快速体验的文章就介绍至此,更多相关python Django增删改查内容请搜索编程宝库以前的文章,希望以后支持编程宝库

Hey!下午好,我是木木子,关注我,一起玩游戏吧~​​微信小游戏很久之前刮起了一股切水果热潮,还记得嘛?我记得纯粹是因为这个游戏家里的孩子依旧没放弃~比如:果盘忍者|水果切切切|一起切水果|全 ...