3.django orm對欄位以及資料的增刪改查
阿新 • • 發佈:2022-03-31
1. 什麼是ORM? 物件關係對映Object Relational Mapping , orm不但在python中有,其他語言中也有 2. 特點: # 在操作資料庫的時候,不需要寫原生SQL語句了。 select * from table # 3. 我們的模型類需要寫在應用下的models.py檔案中 4. 如何使用? '''在使用orm的時候,必須先建立好庫''' 類 >>> 表 物件 >>> 表裡面的資料 物件點屬性 >>> 欄位對應的值 # 缺陷:sql封裝死了 有時候查詢速度很慢 5. 如何建立一張表? '''在寫ORM的時候,類一定要繼承models.Model''' class User(models.Model): id = models.AutoField(primary_key=True) # id int primary key auto_increment name = models.CharField(max_length=32) # name varchar(32),CharField必須指定max_length引數 age = models.IntegerField() # age int # 可以加一個verbose_name引數,給每一個欄位做解釋 '''寫完之後資料庫是沒有反應的,一定要執行資料庫遷移命令''' 6. 一定要執行遷移資料庫 # 執行下面兩行程式碼來生成資料表 ''' python3 manage.py makemigrations # 只是生成遷移記錄 python3 manage.py migrate # 真正的生成資料 ''' # 只要動了models.py中跟資料庫相關的程式碼就必須重新執行上述兩條命令 ''' 針對主鍵欄位: 如果你以後在建立表的時候,主鍵就叫id名,那麼可以省略不寫,orm會自動幫你創建出主鍵名稱為id的欄位 但是,如果你的主鍵名不叫id,比如叫cid,nid...那麼,就不能省略了,就要手動寫。 '''
ORM對欄位的增刪改查
# 增加欄位: pwd = models.IntegerField('密碼',null=True) # 該欄位可以為空 is_delete = models.IntegerField(default=0) # 預設值 # 修改欄位: 直接改程式碼然後執行資料庫遷移命令即可 # 刪除欄位:直接註釋就是刪除(不要輕易在這個裡註釋程式碼) 註釋掉程式碼然後執行資料庫遷移命令即可 軟刪除: is_delete = models.BooleanField(default=0) ''' 預設值設定為0,代表當前資料有效,沒有刪除;如果刪除資料了,把這個值設定為1,代表刪除了 '''
資料的增刪改查
# 1.查詢資料 # select * from user where name=username; user_obj = models.User.objects.filter(name=username).first() # <QuerySet [<User: User object>]> 列表套使用者物件 # 2.新增資料 #insert into user(name,pwd) values(username,password); models.User.objects.create(name=username,pwd=password) # 3.查詢所有的資料 # select * from user; user_data = models.User.objects.all() # <QuerySet [<User: User object>, <User: User object>]> # 4.修改資料 models.User.objects.filter(id=edit_id).update(name=username,pwd=password) edit_obj.name = username edit_obj.pwd = password edit_obj.save() # 5.刪除資料 models.User.objects.filter(id=delete_id).delete()
模板語法傳值
user_data = models.User.objects.all()
第一種方式:
return render(request, 'home.html', {'aaa': user_data})
第二種方式:
return render(request, 'home.html', locals())