数据库:

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. [对对子队]会议记录5.24(Scrum Meeting10)

    今天已完成的工作 梁河览 ​ 工作内容:修改第一关的新手引导 ​ 相关issue:优化初步导出版本 ​ 相关签入:fix:改进第一关的新手引导 何瑞 ​ 工作内容:为加速按钮添加锚点 ​ 相关issu ...

  2. Spring Cloud Alibaba 的服务注册与发现

    Spring Cloud Alibaba 服务发现例子 一.需求 1.提供者完成的功能 2.消费者完成的功能 3.可以附加的额外配置 二.实现步骤 1.总的依赖引入 2.服务提供者和发现者,引入服务发 ...

  3. mongodb的简单查询

    此篇文章简单的记录一下mongodb 的简单查询操作. 一.数据准备: db.persons.insertMany([ {'userId':1,name:'张三','age':20,'scores': ...

  4. 数位dp & 热身训练7

    数位dp 数位dp是一种计数用的dp,一般就是要统计一段区间$[L,R]$内,满足一定条件的数的个数,或者各个数位的个数. 数位dp使得暴力枚举变为满足一定状态的记忆化,更加优秀. 数位dp常常会考虑 ...

  5. set prompt = "任意匹配字符" 当前目录详解

    转载:https://blog.csdn.net/alexdream/article/details/6865730 研究了两天的FreeBSD,总是感觉输入提示符那里怪怪的,而且默认的提示符还不带显 ...

  6. 结束的NULL

    最近同学叫我帮忙看个问题,为啥这个循环没有退出, 代码如下,原本是想拿到最后的NULL指针就可以结束循环 #include <stdio.h> #include <stdlib.h& ...

  7. DeWeb第1个通用化模块:登录模块,仅需要修改一个配置文件即可实现登录功能

    演示: https://delphibbs.com/login.dw 开发环境和源代码 https://gitee.com/xamh/dewebsdk 效果图: 配置方法: 在Runtime目录中放一 ...

  8. 三、其他主机安装zabbix-agent加入到zabbix

    一.yum (rpm)方式 1,下载安装对应的zabbix-agent的rpm包 rpm -Uvh  https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/ ...

  9. Lambda-让人又爱又恨的“->"

    写在前边 聊到Java8新特性,我们第一反应想到的肯定是Lambda表达式和函数式接口的出现.要说ta到底有没有在一定程度上"优化"了代码的简洁性呢?抑或是ta在一定程度上给程序员 ...

  10. Git - git push origin master 报错的解决方法

    亲测实用,转载保存,原文地址:https://blog.csdn.net/kangvcar/article/details/72773904 错误提示如下: [root@linux1 php]# gi ...