数据库:

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函数的更多相关文章

  1. python django 自定义 装饰器

    # -*-coding:utf-8-*- __author__ = "GILANG (pleasurelong@foxmail.com)" """ d ...

  2. Python 散列表查询_进入<哈希函数>为结界的世界

    1. 前言 哈希表或称为散列表,是一种常见的.使用频率非常高的数据存储方案. 哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好 ...

  3. Django自定义查询对象

    在Django中,objects对象类继承于models.Manager 1.声明 EntryManager 类,继承自 models.Manager 允许在 EntryManager中增加自定义函数 ...

  4. Python - Django - 自定义一个中间件

    中间件简介: 中间件是在 wsgi.py 之后,urls.py 之前,在全局操作 Django 请求和响应的模块 在 settings.py 中可以看到中间件的相关配置 该列表中的每一个元素都是一个类 ...

  5. Python - Django - ORM 查询方法

    models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key ...

  6. ORM之自关联、add、set方法、聚合函数、F、Q查询和事务

    一.外键自关联(一对多) 1.建表 # 评论表 class Comment(models.Model): id = models.AutoField(primary_key=True) content ...

  7. django系列5.5--分组查询,聚合查询,F查询,Q查询,脚本中调用django环境

    一.聚合查询 aggregate(*args, **args) 先引入需要的包,再使用聚合查询 #计算所有图书的平均价格 from django.db.models import Avg Book.o ...

  8. Python学习---ORM查询之基于对象的正向/反向/聚合/分组/Q/F查询

    ORM查询之基于对象的正向查询与反向查询 对象形式的查询 # 正向查询 ret1=models.Book.objects.first() print(ret1.title) print(ret1.pr ...

  9. python 全栈开发,Day74(基于双下划线的跨表查询,聚合查询,分组查询,F查询,Q查询)

    昨日内容回顾 # 一对多的添加方式1(推荐) # book=Book.objects.create(title="水浒传",price=100,pub_date="164 ...

随机推荐

  1. AIApe问答机器人Scrum Meeting 4.29

    Scrum Meeting 4 日期:2021年4月29日 会议主要内容概述:汇报两日工作,讨论任务优先级. 一.进度情况 组员 负责 两日内已完成的工作 后两日计划完成的工作 工作中遇到的困难 李明 ...

  2. the Agiles Scrum Meeting 11

    会议时间:2020.4.20 20:00 1.每个人的工作 在这次例会上,我们对上周完成的工作进行了总结. 本周已完成的工作 个人结对项目增量开发组 tq: 创建广播功能 修复纯英文数字可能溢出bug ...

  3. springBoot服务整合线程池ThreadPoolTaskExecutor与@Async详解使用

    ThreadPoolExecutor:=======这个是java自己实现的线程池执行类,基本上创建线程池都是通过这个类进行的创建.ThreadPoolTaskExecutor:========这个是 ...

  4. flink中使用lambda表达式

    flink中使用lambda表达式 1.使用lambda的一个示例 2.使用上面这种写法通常或得到如下错误 3.解决方案 4.建议 5.完整代码 在 java8中有一种新的语法糖,即 lambda表达 ...

  5. 使用Keil下载Hex文件进STM32

    前言 初学STM32时,是通过串口1把Hex文件下载进STM32的,需要一个串口模块,而且还要设置BOOT0和BOOT1电平,然后通过FlyMcu软件进行下载,这也是一种不错的方法,这里我要介绍的是使 ...

  6. SpringCloud微服务实战——搭建企业级开发框架(九):使用Nacos发现、配置和管理微服务

    Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台,Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置 ...

  7. Educational Codeforces Round 113 (Rated for Div. 2)题解

    \(A,B,C\)顺利签到,还是在\(D\)上面卡住了,之后在睡前还是想出来了,看来还是自己的思维不够敏捷和成熟... D. Inconvenient Pairs 简化题意,在一个直角坐标系中,有一些 ...

  8. JAVA笔记10__Math类、Random类、Arrays类/日期操作类/对象比较器/对象的克隆/二叉树

    /** * Math类.Random类.Arrays类:具体查JAVA手册...... */ public class Main { public static void main(String[] ...

  9. Loto实践干货(8)loto示波器在LED台灯调光问题维修中的应用案例

    Loto实践干货(8)loto示波器在LED台灯调光问题维修中的应用案例 一位客户最近觉得觉得他的LED台灯好闪, 于是拆了看看,里面的控制板是这样的: 干掉双色调光功能,只调亮度的话闪烁的状况能好转 ...

  10. python unicode escape

    from: https://stackoverflow.com/questions/44742806/how-to-remove-escape-characters-escaping-unicode- ...