一、數據庫表名修改與數據表中列名修改
from django.db import models class Person(models.Model): # 定義用戶名是唯一的 p_name = models.CharField(max_length=20,unique=True,db_column='name') # 更改數據庫中的列名為age p_age = models.IntegerField(default=18,db_column='age') p_sex = models.BooleanField(default=True,db_column='sex') # 更改數據庫表名稱 class Meta: db_table = 'person'
二、數據篩選過濾,filter與exclude
1、filter
表示查詢符合設定條件的集合
= 直接篩選符合條件的
__gt 大於(為雙下划線)
__gte 大於等於
__lt 小於
__lte 小於等於
__contains 包含(加 i 忽略大小寫)
__startswith 開頭是
__endswith 結尾是
__in 其中之一
__range 范圍
2、exclude
表示查詢出不符合條件設定的集合
篩選方式與filter一致
3、代碼實例
from django.shortcuts import render from App_four.models import Person import random from django.http import HttpResponse # 給數據庫批量添加數據 def person(request): word_list = ['a','b','c','d','t','j','k','l','n','s','e','f','o','p','y','z','w'] for i in range(20,60): person = Person() # 在列表中隨機選取4個字母組合成一個名字 words = random.sample(word_list,4) name = '' for word in words: name +=word person.p_name = name person.p_age = i person.p_sex = random.choice([0,1]) person.save() return HttpResponse('批量添加成功!') # 篩選過濾數據 def get_person(request): persons = Person.objects.all() # 獲取20歲的person person20 = persons.filter(p_age=20) # 獲取40歲以上的person person40 = persons.filter(p_age__gt=40) # 獲取40-50之間的人 person50 = persons.exclude(p_age__lt=40).filter(p_age__lt=50) # 獲取年齡在30-40歲之間的人並且性別為男的人 person30 = persons.exclude(p_age__lt=30).filter(p_age__lt=40).filter(p_sex=1) content = { 'persons1':person20, 'persons2':person40, 'persons3':person50, 'persons4':person30, } return render(request, 'person.html', context=content)