F查询 Q查询:
import os if __name__ == '__main__': os.environ.setdefault("DJANGO_SETTINGS_MODULE", "O_F.settings") import django django.setup() from app01 import models # F查询 from django.db.models import F, Q # 卖出数大于10 # ret = models.Product.objects.filter(maichu__gt=10) # 查询出卖出数大于库存数的商品 F('判断条件') # ret = models.Product.objects.filter(maichu__gt=F('kucun')) # print(ret) # 将每个商品的价格提高50块 # models.Product.objects.update(price=F('price')+50) # 将所有商品的名称后面加一个 '新款' # from django.db.models.functions import Concat # from django.db.models import Value # models.Product.objects.update(name=Concat(F('name'), Value('新款')))
# Q查询 # 卖出数大于100,且价格小于100的 # ret = models.Product.objects.filter(maichu__gt=100, price__lt=100) # print(ret) # 查询 卖出数大于100 或者 价格小于100块的 # ret = models.Product.objects.filter(Q(maichu__gt=100)|Q(price__lt=100)) # print(ret) # 查询 库存数是100 并且 卖出数不是0 的产品 # ret = models.Product.objects.filter(Q(kucun=200) & ~Q(maichu=0)) # print(ret) # 查询产品名包含新款, 并且库存数大于60的 # ret = models.Product.objects.filter(Q(kucun__gt=60), name__contains='新款') # print(ret)
import os
if __name__ == '__main__':
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "O_F.settings")
import django
django.setup()
from app01 import models
# F查询
from django.db.models import F, Q
# 卖出数大于10
# ret = models.Product.objects.filter(maichu__gt=10)
# 查询出卖出数大于库存数的商品 F('判断条件')
# ret = models.Product.objects.filter(maichu__gt=F('kucun'))
# print(ret)
# 将每个商品的价格提高50块
# models.Product.objects.update(price=F('price')+50)
# 将所有商品的名称后面加一个 '新款'
# from django.db.models.functions import Concat
# from django.db.models import Value
# models.Product.objects.update(name=Concat(F('name'), Value('新款')))
# Q查询
# 卖出数大于100,且价格小于100的
# ret = models.Product.objects.filter(maichu__gt=100, price__lt=100)
# print(ret)
# 查询 卖出数大于100 或者 价格小于100块的
# ret = models.Product.objects.filter(Q(maichu__gt=100)|Q(price__lt=100))
# print(ret)
# 查询 库存数是100 并且 卖出数不是0 的产品
# ret = models.Product.objects.filter(Q(kucun=200) & ~Q(maichu=0))
# print(ret)
# 查询产品名包含新款, 并且库存数大于60的
# ret = models.Product.objects.filter(Q(kucun__gt=60), name__contains='新款')
# print(ret)