文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python Django如何实现增删改查

2023-06-29 06:01

关注

这篇文章主要介绍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 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如何实现增删改查”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯