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增删改查内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python+Django+MySQL实现基于Web版的增删改查的示例代码

    前言 本篇使用Python Web框架Django连接和操作MySQL数据库学生信息管理系统(SMS),主要包含对学生信息增删改查功能,旨在快速入门Python Web,少走弯路.效果演示在项目实战最后一节,文章结尾有整个项目的源码地址. 开发环境 开发工具:Pycharm 2020.1 开发语言:Python 3.8.0 Web框架:Django 3.0.6 数据库:MySQL5.7 操作系统:Windows 10 项目实战 1. 创建项目 File->New Project->Django

  • python django 增删改查操作 数据库Mysql

    下面介绍一下django增删改查操作: 1.view.py # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.http import HttpResponse from polls.models import Test from django.shortcuts import render # Create your views here. # 解决乱码 import sys reload(sy

  • python Django连接MySQL数据库做增删改查

    1.下载安装MySQLdb类库http://www.djangoproject.com/r/python-mysql/2.修改settings.py 配置数据属性 复制代码 代码如下: DATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.        'NAME': 'djang

  • 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.

  • python列表的增删改查实例代码

    names=["zhao00","qian01","sun02","li03","li03","li03","zhou04"] #print(names[]) 打印错误 print(names) 增 names.append("wu05") #增加到最后 names.insert(1,"zheng06") #增加到指定位置 改

  • Django完整增删改查系统实例代码

    目录 一.效果图如下 二.使用步骤 1.创建并配置一个django项目 1.1新建一个项目ch3 1.2创建应用employee 1.3指定ch3项目的应用程序emyployee 1.4与数据库相连 1.5 定义与使用模型 1.6生成迁移文件 二.实现数据库增删改查 2.1视图文件 2.2前端页面 2.2.1主页面(list_dep_old.xml) 2.2.2增加数据页面(add_dep_old.html) 2.2.3修改页面(edit_dep_old.html) 2.3在主项目中添加路由 总

  • Springboot+Bootstrap实现增删改查实战

    说明 最近有朋友问我有没有Springboot+Bootstrap实现增删改查的DEMO,当时没有,现在他来了! 实现效果 代码地址 https://gitee.com/indexman/bootstrap_curd 水平一般能力有限,觉得有用的朋友给我来个一键三连或捐助:) 软件架构 前端:bootstrap4.5+thymeleaf+分页插件 后端:spring boot+mybatisPlus 数据库:mysql 核心功能代码 前端 <!DOCTYPE html> <html xm

  • 利用Python实现sqlite3增删改查的封装

    目录 开发背景: 特性: 使用方法 测试用例 Python参数传递方式 总结 开发背景: 每次项目都要写数据库.烦死了..然后就每次数据库都要花很多时间.烦死了!不如写个通用的增删查改,以不变应万变! 特性: 搭建通用增删查改模块,减少代码量. 让代码更加清晰.可读 即便进行了封装,也丝毫不影响其灵活性 sqlite3我也就不多介绍了,直接上代码.附上相关使用方法和测试用例! 使用方法 import sqlite3 '''写一个类打包成库,通用于储存信息的sqlite''' '''函数返回值可优

  • Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(二)

    在上篇文章给大家介绍了Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一),接下来我们添加分页相关的依赖,时间紧张,直接上代码了,贴上我的pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=

  • hibernate增删改查操作代码

    Hibernate对数据删除操作 删除User表中个一条数据,是需要更具User表的主键id值来删除的.首先根据id值向数据库中查询出来对应的对象.可以采用两种方式一是session的get方法,一个是session的load方法. Session的Get方法:调用这个方法会返回一个Object对象.然后我们对其强制转换.Useruser = (User)session.get(User.class," 402881e5441c035e01441c0360510003"); 当我们传递

  • Python Sql数据库增删改查操作简单封装

    本文实例为大家分享了如何利用Python对数据库的增删改查进行简单的封装,供大家参考,具体内容如下 1.insert import mysql.connector import os import codecs #设置数据库用户名和密码 user='root';#用户名 pwd='root';#密码 host='localhost';#ip地址 db='mysql';#所要操作数据库名字 charset='UTF-8' cnx = mysql.connector.connect(user=use

  • thinkphp3.2.3版本的数据库增删改查实现代码

    框架thinkphp 版本:3.2.3 内容:数据库操作 1. 多表查找一条数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->find(); 2.查找一条数据 M('a表')->where('条件')->find(); 3.多表查询所有数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->select(); 4.查询

  • Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一)

    环境搭建 spring boot的简介 以往我们开发时用到spring总是避免不了繁琐的配置,例如我们要配置一个数据库连接,可能需要以下几步: 1.编写jdbc.properties配置文件: 2.创建spring的配置文件,加入spring配置文件前缀.配置数据库连接信息以及sqlsessionFactory等等: 3.还要在web.xml文件中加入spring的监听. springboot的出现大大简化了项目的搭建过程(spring配置以及maven配置),让我们专注于应用功能的开发,而不是

随机推荐