[前言]
在django views视图层中,实现基本的增删改查,框架自带的objects增删改查方法,功能有限且要记住繁琐的封装的方法名,所以也可以使用connections包,实现原生sql的增删改查
[系统]
windows all/unix all
[版本]
django v3.2 mysql v5.7python v3.6
[代码]
# 加载随机数模块
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')
[下载]
本站不直接提供下载,所有下载链接均为第三方