脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python Django实现增删改查实战代码

python Django实现增删改查实战代码

2022-10-08 14:122c不高兴 Python

这篇文章主要介绍了python Django增删改查快速体验,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

python Django实现增删改查实战代码

1.先创建个app子级

?
1
python .\manage.py startapp app01

然后创建数据模型

app01下的
modules.py文件

?
1
2
3
4
5
6
7
8
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)

配置数据库

?
1
2
3
4
5
6
7
8
'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库名',
        'USER': '数据库用户名',
        'PASSWORD': '密码',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }

2.迁移数据库

?
1
python manage.py makemigrations 和 python manage.py migrate

3.写路由url

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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页面编写增删改查

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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.序列化 反序列化

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# -*- 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增删改查内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/Blackcat0/article/details/122945510

延伸 · 阅读

精彩推荐
  • PythonDjango 序列化的具体使用

    Django 序列化的具体使用

    django rest framework 中的序列化组件,本文主要介绍了Django 序列化的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们...

    等到的等待3582022-03-03
  • PythonPython2.X/Python3.X中urllib库区别讲解

    Python2.X/Python3.X中urllib库区别讲解

    本篇文章通过对比给大家详细讲解了在Python2和Python3中urllib库区别以及用法讲解,有需要的朋友跟着学习下吧。...

    sherlockChen4162020-12-26
  • Python在python中只选取列表中某一纵列的方法

    在python中只选取列表中某一纵列的方法

    今天小编就为大家分享一篇在python中只选取列表中某一纵列的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    manjhOK10652021-04-22
  • Python对pandas里的loc并列条件索引的实例讲解

    对pandas里的loc并列条件索引的实例讲解

    今天小编就为大家分享一篇对pandas里的loc并列条件索引的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    akon_wang_hkbu12162021-04-20
  • Pythonpython中多个装饰器的执行顺序详解

    python中多个装饰器的执行顺序详解

    装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识。这篇文章主要介绍了python中多个装饰器的执行顺序详解,小编觉得挺不错的,...

    wyzane8412021-04-05
  • PythonPython基础之变量的相关知识总结

    Python基础之变量的相关知识总结

    今天给大家带来的是关于Python的相关知识,文章围绕着Python变量展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下...

    自动化代码美学10842021-12-07
  • Python简要讲解Python编程中线程的创建与锁的使用

    简要讲解Python编程中线程的创建与锁的使用

    这篇文章主要介绍了简要讲解Python编程中线程的创建与锁的使用,Python中虽然有GIL的存在,但依然是能够创建多个线程来交替使用的,需要的朋友可以参考下...

    pizize5162020-08-14
  • PythonPython 实现引用其他.py文件中的类和类的方法

    Python 实现引用其他.py文件中的类和类的方法

    下面小编就为大家分享一篇Python 实现引用其他.py文件中的类和类的方法,具有的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    blacet14022021-02-07