欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Python的Django框架中更新數(shù)據(jù)庫數(shù)據(jù)的方法

 更新時(shí)間:2015年07月17日 10:34:35   投稿:goldensun  
這篇文章主要介紹了在Python的Django框架中更新數(shù)據(jù)庫數(shù)據(jù),對(duì)此Django框架中提供了便利的插入和更新方法,需要的朋友可以參考下

先使用一些關(guān)鍵參數(shù)創(chuàng)建對(duì)象實(shí)例,如下:

>>> p = Publisher(name='Apress',
...     address='2855 Telegraph Ave.',
...     city='Berkeley',
...     state_province='CA',
...     country='U.S.A.',
...     website='http://www.apress.com/')

這個(gè)對(duì)象實(shí)例并 沒有 對(duì)數(shù)據(jù)庫做修改。 在調(diào)用`` save()`` 方法之前,記錄并沒有保存至數(shù)據(jù)庫,像這樣:

>>> p.save()

在SQL里,這大致可以轉(zhuǎn)換成這樣:

INSERT INTO books_publisher
  (name, address, city, state_province, country, website)
VALUES
  ('Apress', '2855 Telegraph Ave.', 'Berkeley', 'CA',
   'U.S.A.', 'http://www.apress.com/');

因?yàn)?Publisher 模型有一個(gè)自動(dòng)增加的主鍵 id ,所以第一次調(diào)用 save() 還多做了一件事: 計(jì)算這個(gè)主鍵的值并把它賦值給這個(gè)對(duì)象實(shí)例:

>>> p.id
52  # this will differ based on your own data

接下來再調(diào)用 save() 將不會(huì)創(chuàng)建新的記錄,而只是修改記錄內(nèi)容(也就是 執(zhí)行 UPDATE SQL語句,而不是 INSERT 語句):

>>> p.name = 'Apress Publishing'
>>> p.save()

前面執(zhí)行的 save() 相當(dāng)于下面的SQL語句:

UPDATE books_publisher SET
  name = 'Apress Publishing',
  address = '2855 Telegraph Ave.',
  city = 'Berkeley',
  state_province = 'CA',
  country = 'U.S.A.',
  website = 'http://www.apress.com'
WHERE id = 52;

注意,并不是只更新修改過的那個(gè)字段,所有的字段都會(huì)被更新。 這個(gè)操作有可能引起競(jìng)態(tài)條件,這取決于你的應(yīng)用程序。 請(qǐng)參閱后面的“更新多個(gè)對(duì)象”小節(jié)以了解如何實(shí)現(xiàn)這種輕量的修改(只修改對(duì)象的部分字段)。

UPDATE books_publisher SET
  name = 'Apress Publishing'
WHERE id=52;

選擇對(duì)象

當(dāng)然,創(chuàng)建新的數(shù)據(jù)庫,并更新之中的數(shù)據(jù)是必要的,但是,對(duì)于 Web 應(yīng)用程序來說,更多的時(shí)候是在檢索查詢數(shù)據(jù)庫。 我們已經(jīng)知道如何從一個(gè)給定的模型中取出所有記錄:

>>> Publisher.objects.all()
[<Publisher: Apress>, <Publisher: O'Reilly>]

這相當(dāng)于這個(gè)SQL語句:

SELECT id, name, address, city, state_province, country, website
FROM books_publisher;

注意

注意到Django在選擇所有數(shù)據(jù)時(shí)并沒有使用 SELECT* ,而是顯式列出了所有字段。 設(shè)計(jì)的時(shí)候就是這樣: SELECT* 會(huì)更慢,而且最重要的是列出所有字段遵循了Python 界的一個(gè)信條: 明言勝于暗示。

有關(guān)Python之禪(戒律) :-),在Python提示行輸入 import this 試試看。

讓我們來仔細(xì)看看 Publisher.objects.all() 這行的每個(gè)部分:

  •     首先,我們有一個(gè)已定義的模型 Publisher 。沒什么好奇怪的: 你想要查找數(shù)據(jù), 你就用模型來獲得數(shù)據(jù)。
  •     然后,是objects屬性。 它被稱為管理器,我們將在第10章中詳細(xì)討論它。 目前,我們只需了解管理器管理著所有針對(duì)數(shù)據(jù)包含、還有最重要的數(shù)據(jù)查詢的表格級(jí)操作。
  •     所有的模型都自動(dòng)擁有一個(gè) objects 管理器;你可以在想要查找數(shù)據(jù)時(shí)使用它。
  •     最后,還有 all() 方法。這個(gè)方法返回返回?cái)?shù)據(jù)庫中所有的記錄。 盡管這個(gè)對(duì)象 看起來 象一個(gè)列表(list),它實(shí)際是一個(gè) QuerySet 對(duì)象, 這個(gè)對(duì)象是數(shù)據(jù)庫中一些記錄的集合。

相關(guān)文章

  • Python異常類型以及處理方法匯總

    Python異常類型以及處理方法匯總

    調(diào)試Python程序時(shí),經(jīng)常會(huì)報(bào)出一些異常,下面這篇文章主要給大家介紹了關(guān)于Python異常類型以及處理方法的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • PyTorch 中的傅里葉卷積實(shí)現(xiàn)示例

    PyTorch 中的傅里葉卷積實(shí)現(xiàn)示例

    這篇文章主要介紹了PyTorch 中的傅里葉卷積實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python繪制趨勢(shì)圖的示例

    python繪制趨勢(shì)圖的示例

    這篇文章主要介紹了python如何繪制趨勢(shì)圖,幫助大家更好的用python繪制圖像,進(jìn)行數(shù)據(jù)可視化分析,感興趣的朋友可以了解下
    2020-09-09
  • python語言變量和數(shù)據(jù)類型基礎(chǔ)學(xué)習(xí)

    python語言變量和數(shù)據(jù)類型基礎(chǔ)學(xué)習(xí)

    這篇文章主要為大家介紹了python語言變量和數(shù)據(jù)類型基礎(chǔ)學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • OpenCV制作Mask圖像掩碼的案例

    OpenCV制作Mask圖像掩碼的案例

    這篇文章主要介紹了OpenCV制作Mask圖像掩碼的案例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • 詳解Python中數(shù)據(jù)的多種存儲(chǔ)形式

    詳解Python中數(shù)據(jù)的多種存儲(chǔ)形式

    這篇文章主要介紹了Python中數(shù)據(jù)的多種存儲(chǔ)形式,主要有JSON?文件存儲(chǔ)、CSV?文件存儲(chǔ)、關(guān)系型數(shù)據(jù)庫存儲(chǔ)及非關(guān)系型數(shù)據(jù)庫存儲(chǔ),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • python實(shí)現(xiàn)的生成隨機(jī)迷宮算法核心代碼分享(含游戲完整代碼)

    python實(shí)現(xiàn)的生成隨機(jī)迷宮算法核心代碼分享(含游戲完整代碼)

    這篇文章主要介紹了python實(shí)現(xiàn)的隨機(jī)迷宮生成算法核心代碼分享,本文包含一個(gè)簡(jiǎn)單迷宮游戲完整代碼,需要的朋友可以參考下
    2014-07-07
  • python打包成so文件過程解析

    python打包成so文件過程解析

    這篇文章主要介紹了python打包成so文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Linux RedHat下安裝Python2.7開發(fā)環(huán)境

    Linux RedHat下安裝Python2.7開發(fā)環(huán)境

    這篇文章主要為大家詳細(xì)介紹了Linux RedHat下安裝Python2.7、pip、ipython環(huán)境、eclipse和PyDev環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具

    PyQt5+serial模塊實(shí)現(xiàn)一個(gè)串口小工具

    這篇文章主要為大家詳細(xì)介紹了如何利用PyQt5和serial模塊實(shí)現(xiàn)一個(gè)簡(jiǎn)單的串口小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01

最新評(píng)論