1、非django項目文件執行ORM數據庫
在不啓動django項目的狀況下,咱們是否能夠進行ORM操做呢?固然不行。由於全部的ORM操做都必須是要鏈接數據庫的。可是咱們有這樣的一個需求:想在一個文件中執行ORM。該如何實現呢?參考以下實例:django
import os import sys import django sys.path.append(r'C:\Users\Administrator\PycharmProjects\s6day109') #將當前djang項目路徑添加到環境 os.chdir(r'C:\Users\Administrator\PycharmProjects\s6day109') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "s6day109.settings") django.setup() #啓動django from crm import models v = models.Customer.objects.all() print(v)
2、django中ORM的Q介紹app
Q方法主要爲了解決複雜條件查詢的狀況。spa
方式一:code
Q(nid__gt=10) #nid>10 Q(nid=8) | Q(nid__gt=10) #nid=8或者nid>10 Q(nid=8) | Q(nid__gt=10) &Q(caption="root") #nid=8或者nid>10且caption="root" # 應用示例:(非Q條件放在Q條件後面,爲且的關係。如status=2) customer_list = models.Customer.objects.filter(Q(recv_date__lt=)|Q(last_consult_date__lt=no_follow),status=2)
方式二:blog
q1=Q() q1.connector = "OR" q1.children.append(('id',1)) q1.children.append(('id__gt',3)) #q1中要求id=1或者id>3,例:models.UserInfo.objects.filter(q1) q2=Q() q2.connector = "OR" q2.children.append(('title__contain',"高")) q2.children.append(('nid',2)) #q2中要求title字段包含「高」或者nid=2,例:models.UserInfo.objects.filter(q2) con=Q() con.add(q1,"AND") con.add(q2,"AND") #con要求q1和q2的結果爲且的關係,例:models.UserInfo.objects.filter(con)