python-django-自定义查询Q函数和F函数
数据库:
- def page_q(request):
- """Q函数的使用"""
- #查询username和nickname都是zhangsan
- user_list = WeiboUser.objects.filter(username='zhangsan')
- user2_list = WeiboUser.objects.filter(nickname='zhangsan')
- print(user_list)
- print(user2_list)
- # OR |
- name = request.GET.get('name',None)#通过URL进行参数得传递,默认无
- query = Q(username=name) | Q(nickname=name)
- user_listQ = WeiboUser.objects.filter(query)
- print(user_listQ)
- print('SSSSSSSSSSSSSSSSSSSSSSS')
- # AND &
- #查询名字和昵称是某某得用户
- #username 按用户名查血
- username = request.GET.get('username',None)
- # nickname 按昵称擦化学
- nickname = request.GET.get('nickname',None)
- query = Q()#避免下面不进入if语句里面
- if username is not None:
- query = query & Q(username=username)
- if nickname is not None:
- query = query & Q(nickname=nickname)
- user_list_q2 = WeiboUser.objects.filter(query)
- print(user_list_q2.count())
- return HttpResponse('dddd')
- URL:
- http://127.0.0.1:8000/weibo/Q/?nickname=zhangsan
- 结果为
- [08/May/2020 22:32:41] "GET /weibo/Q/?username=zhangsan HTTP/1.1" 200 4
- 1
- <QuerySet [<WeiboUser: User:zhangsan pk:3,nickname:zhangsan>, <WeiboUser: User:zhangsan pk:4,nickname:qq>]>
- <QuerySet [<WeiboUser: User:zhangsan pk:3,nickname:zhangsan>, <WeiboUser: User:duser1 pk:9,nickname:zhangsan>, <WeiboUser: User:duser2 pk:10,nickname:zhangsan>]>
- <QuerySet []>
- SSSSSSSSSSSSSSSSSSSSSSS
- 3
- [08/M
- URL
- http://127.0.0.1:8000/weibo/Q/?username=zhangsan
- 结果:
- [08/May/2020 22:32:57] "GET /weibo/Q/?nickname=zhangsan HTTP/1.1" 200 4
- <QuerySet [<WeiboUser: User:zhangsan pk:3,nickname:zhangsan>, <WeiboUser: User:zhangsan pk:4,nickname:qq>]>
- <QuerySet [<WeiboUser: User:zhangsan pk:3,nickname:zhangsan>, <WeiboUser: User:duser1 pk:9,nickname:zhangsan>, <WeiboUser: User:duser2 pk:10,nickname:zhangsan>]>
- <QuerySet []>
- SSSSSSSSSSSSSSSSSSSSSSS
- 2
- URL:
- http://127.0.0.1:8000/weibo/Q/?name=zhangsan
- 结果:
- [08/May/2020 22:38:22] "GET /weibo/Q/?username=zhangsan HTTP/1.1" 200 4
- <QuerySet [<WeiboUser: User:zhangsan pk:3,nickname:zhangsan>, <WeiboUser: User:zhangsan pk:4,nickname:qq>]>
- <QuerySet [<WeiboUser: User:zhangsan pk:3,nickname:zhangsan>, <WeiboUser: User:duser1 pk:9,nickname:zhangsan>, <WeiboUser: User:duser2 pk:10,nickname:zhangsan>]>
- <QuerySet [<WeiboUser: User:zhangsan pk:3,nickname:zhangsan>, <WeiboUser: User:zhangsan pk:4,nickname:qq>, <WeiboUser: User:duser1 pk:9,nickname:zhangsan>, <WeiboUser: User:duser2 pk:10,nickname:zhangsan>]>
- SSSSSSSSSSSSSSSSSSSSSSS
- 106
- 由于这里没有传入username 和nickname所以查询为没条件,所以全部得数据都查询出来了
- import threading
- from django.db.models import F
- from weibo.models import WeiboUser
- class ChangeThread(threading.Thread):
- """改变用户的状态"""
- def __init__(self,max_count=100,*args,**kwargs):
- super().__init__(*args,**kwargs)
- self.max_count = max_count
- def run(self):
- count = 0
- user = WeiboUser.objects.get(pk=2)
- while True:
- if count >= self.max_count:
- break
- print(self.getName(),count)
- # user.status+=1
- user.status = F('status') + 1
- #F函数表示每次操作都要去数据库查询出数据进行炒作
- user.save()
- count +=1
- def main():
- t1 = ChangeThread(max_count=800)
- t2 = ChangeThread(max_count=500)
- t1.start()
- t2.start()
- t1.join()
- t2.join()
python-django-自定义查询Q函数和F函数的更多相关文章
- python django 自定义 装饰器
# -*-coding:utf-8-*- __author__ = "GILANG (pleasurelong@foxmail.com)" """ d ...
- Python 散列表查询_进入<哈希函数>为结界的世界
1. 前言 哈希表或称为散列表,是一种常见的.使用频率非常高的数据存储方案. 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好 ...
- Django自定义查询对象
在Django中,objects对象类继承于models.Manager 1.声明 EntryManager 类,继承自 models.Manager 允许在 EntryManager中增加自定义函数 ...
- Python - Django - 自定义一个中间件
中间件简介: 中间件是在 wsgi.py 之后,urls.py 之前,在全局操作 Django 请求和响应的模块 在 settings.py 中可以看到中间件的相关配置 该列表中的每一个元素都是一个类 ...
- Python - Django - ORM 查询方法
models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key ...
- ORM之自关联、add、set方法、聚合函数、F、Q查询和事务
一.外键自关联(一对多) 1.建表 # 评论表 class Comment(models.Model): id = models.AutoField(primary_key=True) content ...
- django系列5.5--分组查询,聚合查询,F查询,Q查询,脚本中调用django环境
一.聚合查询 aggregate(*args, **args) 先引入需要的包,再使用聚合查询 #计算所有图书的平均价格 from django.db.models import Avg Book.o ...
- Python学习---ORM查询之基于对象的正向/反向/聚合/分组/Q/F查询
ORM查询之基于对象的正向查询与反向查询 对象形式的查询 # 正向查询 ret1=models.Book.objects.first() print(ret1.title) print(ret1.pr ...
- python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)
昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...
随机推荐
- [no_code][Alpha]项目展示博客
$( "#cnblogs_post_body" ).catalog() 团队项目链接 github 后端 github OCR文档-含部分所需测试代码目前private API调用 ...
- BUAA SE 个人项目作业
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人项目作业 我在这个课程的目标是 通过个人项目实践熟悉个人开发流程 一.在文章开头给出教学班级和 ...
- 难搞的C语言指针你搞懂了多少
C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以 十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考 ...
- 两个栈实现队列 牛客网 剑指Offer
两个栈实现队列 牛客网 剑指Offer 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. class Solution: def __init__(sel ...
- clone-graph leetcode C++
Clone an undirected graph. Each node in the graph contains alabeland a list of itsneighbors. OJ's un ...
- Python matplotlib 概率论与数理统计 伯努利分布 二项分布
Python 代码实现 二项分布 import numpy as np import matplotlib.pyplot as plt import math from scipy import st ...
- CF398A Cards | 贪心
题目链接 我怎么连这种题都做得那么艰难-- 可以发现一些结论,然后枚举'x'被分成几段就好了. 我真的越来越菜 #include<iostream> #include<cstdio& ...
- 计算机网络漫谈之IP数据包
网络层从 网络层 .IP与子网掩码 前前后后我们也说了两次了,IP 这个东西絮絮叨叨的也一直在提.今天我们来解开IP协议的面纱,还记得我们之前在数据链路层说的物理帧的结构吗?就是这样: 其中Head叫 ...
- robot_framewok自动化测试--(7)认识RIDE
认识 RIDE RIDE 作为 Robot Framework 的"脸面",虽然我们已经可以拿它来创建和运行测试了,但我们对它的认识并不全面,这一小节我们将了解这个工具的使用. 1 ...
- JMeter学习笔记--并发登录测试
账号密码读取文件 1.设置线程数为30,并发用户量就是30个用户同时登录 2.添加同步定时器 添加 Synchronizing Timer 同步定时器,为了阻塞线程,当线程数达到指定数量,再同时释放, ...