Django中Model操作(數據庫表名修改/列名修改/數據篩選過濾)


一、數據庫表名修改與數據表中列名修改

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)
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM