Python篇:Django框架之高级及模糊查询
Django是集成框架,功能齐全。
Django基本操作:
django模型
Django无需自己建对象的实体类,无需再封装等。
直接可以从数据库中导入。
SQL也无需再编写,直接调用框架本身的方法即可。
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
from Student.models import *
# Create your views here.
def first(request):
if request.method == 'POST':
userName = request.POST.get('userName')
users = User.objects.filter(userid__isnull=True)
# (username__contains=userName)
# (userid__gt=2) 模糊查询 双下划线
else:
users = User.objects.all()
# .order_by('-userid') 排序 属性前加- 即反序
count = users.__len__()
return render(request, 'first.html', context={'users': users, 'count': count})
# {% csrf_token %} Forbidden (403)
def delete(request):
uid = request.GET.get('uid')
User.objects.filter(userid=uid).delete() # 找到则删除
return redirect('first.html')
def update(request):
uid = request.GET.get('uid')
user = User.objects.get(userid=uid)
return render(request, 'update.html', context={'user': user})
def updateUser(request):
userId = request.POST.get('userId')
userName = request.POST.get('userName')
userSay = request.POST.get('userSay')
User.objects.filter(userid=userId).update(username=userName, usersay=userSay)
return redirect('first.html')
def insert(request):
return render(request, 'insert.html')
def insertUser(request):
userName = request.POST.get('userName')
userSay = request.POST.get('userSay')
User.objects.create(username=userName, usersay=userSay)
return redirect('first.html') # 重定向
# def insert(request):
# if request.method=='POST':
# userName=request.POST.get('userName')
# userSay=request.POST.get('userSay')
# User.objects.create(username=userName,usersay=userSay)
# return redirect('first.html')
# else:
# return render(request, 'insert.html')
代码如上。
User.objects.filter(username__contains=userName)
.objects.all():查询所有
User.objects.all() .order_by('userid') 排序 默认正序
User.objects.all() .order_by('-userid') 排序 属性前加- 即反序
username__contains:username是对象的属性,加上双下划线+contains=传入值,即可模糊查询。
对象名.objects.filter:能拿到多个对象
条件查询:
例如:查询id大于2的对象数据。
.objects.filter(id__get=2)
User.objects.filter(userid__isnull=True):筛选某字段是为空的对象
User.objects.filter(userid__isnull=False):筛选某字段不为空的对象
对象名.objects.get:具体拿到指定的一个对象
没有符合条件的,则DoseNotExist报错
值得借鉴: