1. 程式人生 > >如何使用Django模型Models對資料庫進行增刪改查

如何使用Django模型Models對資料庫進行增刪改查

Django的抽象模型Models可以直接對資料庫進行增刪改查,不需要你自己寫SQL語言來進行相關資料庫操作。今天我們就以部落格blog為例,看下Django是如何對資料庫進行增刪改查的。

我們將會用到如下這個簡單的Article模型: 

from django.db import models

class Article(models.Model):
   title = models.CharField('標題', max_length=200, unique=True)
   body = models.TextField('正文')

   def __str__(self):
       return
self.title

增即建立新的物件或新增新的條目。如果我們要給資料庫新增一篇新的文章,Django提供了2種常見操作方式。

方法一,傳統save方法。

obj = Article(title="My first article", body="My first article body")
obj.save()

注意: 該方法如果不選擇save(), 建立的物件將不會儲存到資料庫中去。正因為如此,Django還提供了更便捷的create方法。

方法二,便捷的create方法。

Article.objects.create(title="My first article", body="My first article body"
)

注意: 對Django自帶auth模組中的User模型操作,比如建立新的使用者時,請用create_user方法。該方法會將密碼自動加Hash儲存到資料庫中。

from django.contrib.auth.models import User
user = User.objects.create_user(username='john',
                               
email='[email protected]',
                               
password='somepwd')

刪即刪除一個已有物件或從表中刪除一個已有條目。Django也允許同時刪除多個物件或條目。

案例一,刪除所有文章 (請慎用!!)

Article.objects.all().delete()

案例二,刪除標題裡含有python的所有文章(不區分大小寫)

Article.objects.filter(title__icontains="python").delete()

改既可以用save方法,也可以用update方法。其區別在於save方法不僅可以更新資料中現有物件資料,還可以建立新的物件。而update方法只能用於更新已有物件資料。一般來說,如果要同時更新多個物件資料,用update方法更合適。

案例一,利用save方法更新某一文章標題

article = Article.objects.get(id=1)
article.title = "New article title"
article.save()

案例二,利用update方法更新某一文章標題

article = Article.objects.get(id=1).update(title='new title')

案例三,利用update方法更新多篇文章標題

article = Article.objects.filter(title__icontains='python').update(title='Django')

Django對於資料庫的查詢主要是get和filter等方法。我們來看幾個案例。

案例一,查詢所有資料

Article.objects.all()
Article.objects.all().values()
# 只獲取title列表-字典形式
Article.objects.all().values('title')
# 只獲取title列表- 元組形式,只有value,沒有key
Article.objects.all().values_list('title')

注意:使用values和values_list可以減少資料庫查詢工作量。如果只需要在模板中使用某些欄位,而不是全部欄位,建議使用values和values_list。

案例二,查詢某一條資料

Article.objects.get(id=1)

案例三,模糊查詢返回資料集, 並去重

Article.objects.filter(title__icontains='python').distinct()

相關推薦

如何使用Django模型Models資料庫進行刪改

Django的抽象模型Models可以直接對資料庫進行增刪改查,不需要你自己寫SQL語言來進行相關資料庫操作。今天我們就以部落格blog為例,看下Django是如何對資料庫進行增刪改查的。我們將會用到如

mybatis 在前端資料庫進行刪改

Springboot 對資料庫進行增刪改查 首先要實現在idea裡面能實現對資料看的增刪改查,最後再實現前後端互動 1.首先在資料庫裡面先建好資料庫(test01)和表(t_user) 2.配置檔案pom.xml <?xml version="1.0"

Laravel 資料庫例項教程 —— 使用查詢構建器資料庫進行刪改

上一節我們講了如何使用DB門面對資料庫進行原生查詢,這一節我們使用另外一種方式實現對資料庫的增刪改查——查詢構建器(Query Builder)。 獲取查詢構建器很簡單,還是要依賴DB門面,我們使用DB門面的table方法,傳入表名,即可獲取該表的查詢構建器: $us

ASP.NET 使用類資料庫進行刪改操作

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Dat

JDBC通過PreparedStatement 資料庫進行刪改

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public

Django 操作Mysql資料庫 進行刪改

首先說明:以下方法都是根據表已有的欄位新增資料,若想新增欄位,則需在類裡面新建靜態欄位, 可參考Django 操作資料庫建表  ,增刪改查在views.py 操作, 建表和欄位在models.py 操作 1、首先在 models.py 裡定義 任意 1個 模型類 本人定義 Asset,可自動生成對應的表 f

python 連線oracle資料庫進行刪改操作

Python 建立連線oracle資料庫的三種方式: 方式一:使用者名稱、密碼和監聽分開寫 import cx_Oracle db=cx_Oracle.connect('username/[email protected]/orcl') db.close()

scalikejdbc框架mysql資料庫進行刪改,事務建立

1.在scala中想要操作mysql數庫中的資料,可以使用scalikejdbc。 2.匯入依賴。 3.在resource檔案中新增application.conf檔案。然後配置引數。 db.def

安卓端通過httpMysql進行刪改

name 交流 shm != 用戶 習慣 cti -perm 得到 各類it學習視頻,大家都可以看看哦!我自己本人都是通過這些來學習it只知識的! 下面是視頻鏈接轉自:http://www.cnblogs.com/wangying222/p/5492935.html ht

C#中sqlserver進行刪改操作(簡單易懂)

uid 數據連接 net cti ade 密碼 logs where Go 1、添加引用using System.Data;using System.Data.SqlData;2、建立於數據庫的連接,建議將它做成一個方法,方便多次利用。string sqlconnectio

asp.net core webapi 使用ef mysql進行刪改,並生成Docker鏡像構建容器運行

rri put void userdata pro ext 代理 cte 成功 1.構建運行mysql容器,添加數據庫user 參考Docker創建運行多個mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html

docker基礎:私庫系列:再探Harbor:(7) 使用restapi專案進行刪改

在上篇文章中介紹了Harbor的RestApi,這篇具體以專案的增刪改查作為例子來進行說明。 前提假定 假定Harbor運行於本機localhost的32031埠 專案查詢 查詢全部專案 curl -X GET “http://localhost:32031/

Zookeeper JavaAPI節點進行刪改(詳細步驟)

import java.io.IOException; import java.util.List; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.ap

ORACLE中建立表、進行刪改的語法

最近在學習ORACLE,現將在ORACLE中建立表、對錶進行增刪該查的語法總結如下: 表是一種資料庫物件,是基本的資料儲存單位,由行和列組成 表的建立(以課程資訊表為例): CREATE TABLE OBJECTS       

springboot整合jpa實現資料庫刪改

在實際開發中,spring整合mybatis或者jpa對資料庫操作的情況都存在,這兩者的區別或關係就不在贅述了,簡單來說呢,就是jpa實現起來比較簡單,很方便上手。下面看一下我們的專案如何配置jpa實現對資料庫的操作吧。 首先在pom中引入依賴了,這裡可以在建立專案時選擇j

利用Spring框架在前端實現資料庫刪改

在前端頁面上顯示購物資料庫資料,並且可以這增、刪、改、查 1.首先在WEB 配置檔案 <!-- 配置DispatcherServlet --> <servlet> <servlet-name>springmvc</serv

Python--綜合練習--檔案進行刪改

知識點應用:strip()  tag       函式封裝      檔案操作      for迴圈      os模組      程式碼解耦 例項 tag = True while tag: print('level') choice = input('level1

使用文字處理php的欄位代替資料庫進行刪改

第一次就是比較慢 寫個模版 以後有小型的東西 可以考慮不用資料庫的 那麼就用字串操作 search.php <?php /** * Created by PhpStorm. * User: liuan * Date: 2018/11/29 * Time: 23:46 */

IDEA java連線mysql資料庫,實現資料庫刪改

先上程式碼: package Database_Demo; import java.sql.*; public class DataBase { public static void main(String[] args) { Connect

Solr13 - 通過SolrCloud的RESTful API叢集進行刪改操作

文章目錄 1 建立操作 1.1 建立collection 1.2 建立core 1.3 建立API引數說明 2 刪除操作 2.1 刪除collection 2.2 解除安裝core 2.3 刪