正文

django views视图层实现增删改查的方法


[前言]


django views视图层中,实现基本的增删改查,框架自带的objects增删改查方法,功能有限且要记住繁琐的封装的方法名,所以也可以使用connections包,实现原生sql的增删改查

[系统]


windows all/unix all

[版本]


python v3.6

django v3.2

mysql v5.7

[代码]


# 加载随机数模块
import random
# 渲染html模板文件
from django.shortcuts import render
# 返回数据
from django.http import HttpResponse,JsonResponse
# 序列化包,包括序列化成json数据
from django.core import serializers
# 从同级目录中加载models里面的users数据表
from .models import users
# 引入connection才能执行原生增删改操作,查询可以用objects.raw()方法
from django.db import connection

# Create your views here.
def index(request):

    # views数组打印,访问url地址,在控制台可见,浏览器不可见
    # arr = [4,5,6]
    # for i in arr:
        # print(i)

    # return HttpResponse('end')

    # obejects.all() 返回一个查询集(QuerySet),包含了模型中的所有对象,多条记录
    # user = users.objects.all()
    # userJson = serializers.serialize('json',user)

    # obejects.all() 返回一个列表,单条记录
    # user = users.objects.get(userName='hu')
    # userJson = serializers.serialize('json',[user])

    # 增加数据
    # createRes = users.objects.create(userName='hu_' str(random.random()),userGender=1)
    # print(serializers.serialize('json',[createRes]))

    # 判断可能无效,新增数据失败会抛出异常,可能要写try捕获异常
    # if createRes.id:
    #     return JsonResponse({'code':4001,'msg':'新增数据成功'},safe=False)
    # else:
    #     return JsonResponse({'code':4000,'msg':'新增数据失败'},safe=False)

    # 删除数据
    # delRes = users.objects.filter(id=48).delete()

    # 返回了一个元祖,通过下标输出,有点类似php索引数组
    # if delRes[0]:
    #     return JsonResponse({'code':4001,'msg':'删除数据成功'},safe=False)
    # else:
    #     return JsonResponse({'code':4000,'msg':'删除数据失败'},safe=False)

    # 更新数据
    # 字段__gt=number:某个字段大于某个值
    # 字段__gte=number:某个字段大于等于某个值
    # 字段__lt=number:某个字段小于某个值
    # 字段__lte=number:某个字段小于等于某个值
    # updateRes = users.objects.filter(id__gt=300).update(userName='wang_' str(random.random()))

    # 返回受影响的行数
    # if updateRes>0:
    #     return JsonResponse({'code':4001,'msg':'更新数据成功,更新' str(updateRes) '行'},safe=False)
    # else:
    #     return JsonResponse({'code':4000,'msg':'更新数据失败,更新' str(updateRes) '行'},safe=False)

    # 运行查询数据原生sql
    # sql = "select * from web_users"
    # res = users.objects.raw(sql)
    # resJson = serializers.serialize('json', res)
    # print(resJson)
    # return HttpResponse(resJson)

    # 运行增加数据原生sql
    # conRes = connection.cursor()
    # sql = "insert into web_users (userName,UserGender) values ('wang',1)"
    # InsertRes = conRes.execute(sql)
    # resJson = serializers.serialize('json', res)
    # print(type(InsertRes))
    # return HttpResponse(resJson)
    # 返回int类型的数字,应该是插入的行数,失败还是会抛出异常,所以判断不起作用
    # if InsertRes>0:
    #     return JsonResponse({'code':4001,'msg':'新增数据成功'},safe=False)
    # else:
    #     return JsonResponse({'code':4000,'msg':'新增数据失败'},safe=False)

    # 运行删除数据原生sql
    # conRes = connection.cursor()
    # sql = "delete from web_users where id>50"
    # deltRes = conRes.execute(sql)
    # resJson = serializers.serialize('json', res)
    # print(deltRes)
    # return HttpResponse(resJson)
    # 返回int类型的数字,应该是删除的行数
    # if deltRes>0:
    #     return JsonResponse({'code':4001,'msg':'删除数据成功'},safe=False)
    # else:
    #     return JsonResponse({'code':4000,'msg':'删除数据失败'},safe=False)

    # 运行更新数据原生sql
    # conRes = connection.cursor()
    # sql = "update web_users set userName='hu' where id=50"
    # updateRes = conRes.execute(sql)
    # resJson = serializers.serialize('json', res)
    # print(updateRes)
    # return HttpResponse(resJson)
    # 返回int类型的数字,应该是影响的行数
    # if updateRes>0:
    #     return JsonResponse({'code':4001,'msg':'更新数据成功,更新' str(updateRes) '行'},safe=False)
    # else:
    #     return JsonResponse({'code':4000,'msg':'更新数据失败,更新' str(updateRes) '行'},safe=False)







    # user = list(user)
    # print(type(user))
    # return JsonResponse(user,safe=False)
    # print(userJson)



    return HttpResponse('end')

[下载]


下载链接

本站不直接提供下载,所有下载链接均为第三方

views.py

评论
还没有评论
留言