django之model中資料庫查詢

2021-09-14 06:53:12 字數 1803 閱讀 3535

假如現在models.py中已經下面這個類,並且已經建立了相應的表

class stu(models.model):

stu_id = models.charfield(max_length=20) # 學號

name = models.charfield(max_length=50, unique=true) 姓名

password = models.charfield(max_length=50) # 密碼

age = models.integerfield() # 年齡

email = models.charfield(max_length=50) # 郵箱

details = models.textfield() # 詳細描述

1. 查詢學號為32的學生資訊

stu_info = stu.objects.filter(stu_id='32').first()
2. 查詢姓名為張三,年齡為18的學生

data = 

stu_info = stu.objects.filter(**data)

注意這兒傳入的引數,因為是字典,所以要用**data表示,否則就會出錯

1. 返回年齡不等於18的學生

stu_info = stu.objeects.exclude(stu_id="18")
1. 根據學生的年齡排序

stu_list = stu.objects.all().order_by('age')  # 根據年齡從小到大排序

stu_list = stu.obj.all().order_by('-age') # 根據年齡從大到小排序

stu_inf = stu.objects.all()  # 獲取表中所有的資料
stu_info = stu.objects.get(age="18")  # 得到第一條資料
這個方法和filter()有乙個明顯的區別,就是這個get()方法獲取的值有且只有乙個。也就是說,如果資料庫中符合條件的值沒有或者超過1個,那麼都會報錯。所以建議使用filter()

stu_info = stu.objects.filter(age="18").first()

stu_info = stu.objects.filter(age="18").last()

stu.objects.filter(name="李四").update(age="17")  # 將李四的年齡改為17
stu.objects.filter(id=1).delete()  # 將id為1的學生資訊刪除
data = 

stu.objects.create(**data) # 建立資訊

# 相當於sql語句中的如下語句

insert into stu (name, age, email) values ("周某人", "18", "******x");

stu_info = stu.objects.filter(id__gt=2)  # 找出id大於2的所有記錄

注:這是django自帶的方法,不能寫id>2, 而是用id__gt=2。即欄位+雙下劃線+大小+等於號

例如找出大於等於5的所有記錄

stu_info = stu.objects.filter(id__gte=5)

Django之Model資料庫表結構

表結構修改後,原來表中已存在的資料,就會出現結構混亂,makemigrations更新表的時候就會出錯 解決方法 1 新增加的字段,設定允許為空。生成表的時候,之前資料新增加的字段就會為空。null true允許資料庫中為空,blank true允許admin後台中為空 2 新增加的字段,設定乙個預...

Django之Model資料庫連表結構

應用場景 from django.db import models create your models here.class usertype models.model name models.charfield max length 50 class userinfo models.model ...

Django 建立資料庫Model

在正式開始前,先簡單介紹一下web 框架。為什麼要有web 框架?如果你打算做乙個網頁,那是不需要的。如果你需要建立大量的網頁,而且如果只需要同乙個網頁改改內容的話,那你就需要建立乙個合適的框架,減少大量無謂的重複操作。django用的mtv,也就是model template view模型,先看看...