ORM database query operation API in the Django view, and django view ormapi
APIS for querying table records
Operation: models. Table name. objects. Method ()
All (): Query all results filter (** kwargs): it contains the object get (** kwargs) that matches the given filter condition ): returns an object that matches the given filtering condition. Only one of the returned results is returned. If more than one object meets the filtering condition, an error is thrown. Exclude (** kwargs): contains the values (* field) object that does not match the given filter condition: returns a ValueQuerySet -- a special QuerySet, what we get after running is not a series of model instantiation objects, but an iterative dictionary sequence values_list (* field): It is very similar to values (), and it returns a sequence of tuples, values returns a dictionary sequence order_by (* field): sorts query results by reverse (): sorts query results by reverse Order by distinct (): removes duplicate records from the returned results by count (): returns the number of objects that match the query (QuerySet) in the database. First (): returns the first record last (): returns the last record exists (): returns True if QuerySet contains data; otherwise, returns False
Note: object and querySet must be distinguished !!!
Object, which can call internal methods
Queryset is a set.
Single Table query with double underscores
Models. tb1.objects. filter (id _ lt = 10, id _ gt = 1) # obtain the value models with id greater than 1 and less than 10. tb1.objects. filter (id _ in = [11, 22, 33]) # obtain data models with IDs equal to 11, 22, and 33. tb1.objects. exclude (id _ in = [11, 22, 33]) # not in models. tb1.objects. filter (name _ contains = "ven") models. tb1.objects. filter (name _ icontains = "ven") # icontains case insensitive models. tb1.objects. filter (id _ range = [1, 2]) # range: bettwen and startswith, istartswith, endswith, iendswith
Example: def query (request): # query method API: #1 all method: models. table name. objects. all () book_all = models. book. objects. all () # The result is the querySet set # print (book_all) #2 filter: models. table name. objects. filter () ret = models. book. objects. filter (title = 'php') # The result is querySet set ret2 = models. book. objects. filter (nid = 1) # The result is querySet set ret3 = models. book. objects. filter (author = 'Alex ', price = 35) # The result is a set of querysets and the relationship between them. Both conditions must meet # print (ret) #3 get: models. table name. objects. get () ret4 = models. book. objects. get (nid = 3) # model object. If no value is obtained, an error is returned. # print (ret4, ret4.price) #4 exclude: exclusion condition. The value is not ret5 = models. book. objects. exclude (author = 'oldboys') #5 values method # ret6 = models. book. objects. filter (author = 'Alex '). values ('title', 'price') # print ('ret6 ', ret6) #6 values_list method # ret7 = models. book. objects. filter (author = 'Alex '). values_list ('title', 'price') # print ('ret7 ', ret7) # ret8 = models. book. objects. filter (author = 'Alex '). values ('author '). distinct () # print ('ret8 ', ret8) # ret9 = models. book. objects. filter (price _ gt = 30) ret10 = models. book. objects. filter (title _ startswith = 'P') ret11 = models. book. objects. filter (id_lt = 4, id_gt = 2) # id greater than 2 less than 4 print ('ret10 ', ret10) return HttpResponse ("OK ")