假如現在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模型,先看看...