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

在Django的模型中執(zhí)行原始SQL查詢的方法

 更新時間:2015年07月21日 11:33:41   投稿:goldensun  
這篇文章主要介紹了在Django的模型中執(zhí)行原始SQL查詢的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下

有時候你會發(fā)現(xiàn)Django數(shù)據(jù)庫API帶給你的也只有這么多,那你可以為你的數(shù)據(jù)庫寫一些自定義SQL查詢。 你可以通過導入django.db.connection對像來輕松實現(xiàn),它代表當前數(shù)據(jù)庫連接。 要使用它,需要通過connection.cursor()得到一個游標對像。 然后,使用cursor.execute(sql, [params])來執(zhí)行SQL語句,使用cursor.fetchone()或者cursor.fetchall()來返回記錄集。 例如:

>>> from django.db import connection
>>> cursor = connection.cursor()
>>> cursor.execute("""
...  SELECT DISTINCT first_name
...  FROM people_person
...  WHERE last_name = %s""", ['Lennon'])
>>> row = cursor.fetchone()
>>> print row
['John']

connection和cursor幾乎實現(xiàn)了標準Python DB-API,你可以訪問` http://www.python.org/peps/pep-0249.html <http://www.python.org/peps/pep-0249.html>`__來獲取更多信息。 如果你對Python DB-API不熟悉,請注意在cursor.execute() 的SQL語句中使用`` “%s”`` ,而不要在SQL內直接添加參數(shù)。 如果你使用這項技術,數(shù)據(jù)庫基礎庫將會自動添加引號,同時在必要的情況下轉意你的參數(shù)。

不要把你的視圖代碼和django.db.connection語句混雜在一起,把它們放在自定義模型或者自定義manager方法中是個不錯的主意。 比如,上面的例子可以被整合成一個自定義manager方法,就像這樣:

from django.db import connection, models

class PersonManager(models.Manager):
  def first_names(self, last_name):
    cursor = connection.cursor()
    cursor.execute("""
      SELECT DISTINCT first_name
      FROM people_person
      WHERE last_name = %s""", [last_name])
    return [row[0] for row in cursor.fetchone()]

class Person(models.Model):
  first_name = models.CharField(max_length=50)
  last_name = models.CharField(max_length=50)
  objects = PersonManager()

然后這樣使用:

>>> Person.objects.first_names('Lennon')
['John', 'Cynthia']

相關文章

  • pytorch實現(xiàn)從本地加載 .pth 格式模型

    pytorch實現(xiàn)從本地加載 .pth 格式模型

    今天小編就為大家分享一篇pytorch實現(xiàn)從本地加載 .pth 格式模型,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Centos部署django服務nginx+uwsgi的方法

    Centos部署django服務nginx+uwsgi的方法

    這篇文章主要介紹了Centos部署django服務nginx+uwsgi的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Linux下Pycharm、Anaconda環(huán)境配置及使用踩坑

    Linux下Pycharm、Anaconda環(huán)境配置及使用踩坑

    這篇文章主要介紹了Linux下Pycharm、Anaconda環(huán)境配置及使用踩坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • python3爬蟲中異步協(xié)程的用法

    python3爬蟲中異步協(xié)程的用法

    在本篇文章里小編給大家整理的是關于python3爬蟲中異步協(xié)程的用法,需要的朋友們可以學習參考下。
    2020-07-07
  • 解決Pycharm 導入其他文件夾源碼的2種方法

    解決Pycharm 導入其他文件夾源碼的2種方法

    今天小編就為大家分享一篇解決Pycharm 導入其他文件夾源碼的2種方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 在Django的模板中使用認證數(shù)據(jù)的方法

    在Django的模板中使用認證數(shù)據(jù)的方法

    這篇文章主要介紹了在Django的模板中使用認證數(shù)據(jù)的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • python flask框架詳解

    python flask框架詳解

    這篇文章主要介紹了python flask框架詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Python中如何自定義函數(shù)

    Python中如何自定義函數(shù)

    這篇文章主要介紹了Python中如何自定義函數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Django自定義認證方式用法示例

    Django自定義認證方式用法示例

    這篇文章主要介紹了Django自定義認證方式用法,結合實例形式分析了Django自定義認證的創(chuàng)建、設置及功能實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • 聊聊Python對CSV文件的讀取與寫入問題

    聊聊Python對CSV文件的讀取與寫入問題

    今天抽空給大家介紹下Python對CSV文件的讀取與寫入問題,首先需要在python環(huán)境里導入csv板塊,下面就通過實例代碼給大家詳細介紹下,感興趣的朋友跟隨小編一起看看吧
    2021-11-11

最新評論