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 ...
随机推荐
- 用例圖學習實例 / Learning Use Case Diagram by Examples
什麼是用例圖? 用例描述了一個演員和感興趣的系統之間的一系列交互,以達到某種特定目標,並由某種觸發事件引發.用例滿足需求或為演員解決問題.用例圖包含一組用例,可以通過從每個角色的不同角度講述系統將如何 ...
- HTTP请求如何带参
这两天正好作一份API的接口文档,关于HTTP request如何传递参数不是很清楚,这里转载了他人的文档,让我明白了很多.. http://tomfish88.iteye.com/category/ ...
- BUAA2020软工作业(五)——软件案例分析
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件案例分析作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面 ...
- 2021.8.8考试总结[NOIP模拟33]
T1 Hunter 考场上一看期望直接状压拿了$45pts$跑了.结果正解只用$4$行? 把问题转化为一号猎人之前死的猎人数的期望加一. 期望的线性性. 对每个猎人$i$,$w_i+w_1$种情况中有 ...
- python画图的工具及网站
①Gallery - Matplotlib 3.4.3 documentation 学会模仿并超越 ②Examples - Apache ECharts js网页端动态展示 ③WEB色見本 原色大辞典 ...
- 【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
问题描述 如何把开启NFS协议的Azure Blob挂载到Linux虚拟机中呢? [答案]:可以使用 NFS 3.0 协议从基于 Linux 的 Azure 虚拟机 (VM) 或在本地运行的 Linu ...
- 深入探索 Linux listen() 函数 backlog 的含义
1:listen()回顾以及问题引入 2:正确的解释 3:实验验证 1:listen()回顾以及问题引入 listen()函数是网络编程中用来使服务器端开始监听端口的系统调用,首先来回顾下listen ...
- RocketMQ源码详解 | Consumer篇 · 其一:消息的 Pull 和 Push
概述 当消息被存储后,消费者就会将其消费. 这句话简要的概述了一条消息的最总去向,也引出了本文将讨论的问题: 消息什么时候才对被消费者可见? 是在 page cache 中吗?还是在落盘后?还是像 K ...
- 9组-Alpha冲刺-3/6
一.基本情况 队名:不行就摆了吧 组长博客:https://www.cnblogs.com/Microsoft-hc/p/15546622.html 小组人数: 8 二.冲刺概况汇报 卢浩玮 过去两天 ...
- Django笔记&教程 4-2 模型(models)中的Field(字段)
Django 自学笔记兼学习教程第4章第2节--模型(models)中的Field(字段) 点击查看教程总目录 参考:https://docs.djangoproject.com/en/2.2/ref ...