a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Python > 正文

在Django的視圖中使用數據庫查詢的方法

2020-01-04 18:03:31
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了在Django的視圖中使用數據庫查詢的方法,是Python的Django框架使用的基礎操作,需要的朋友可以參考下

在視圖中也有笨方法可以從數據庫中獲取數據。 很簡單: 用現有的任何 Python 類庫執行一條 SQL 查詢并對結果進行一些處理。

在本例的視圖中,我們使用了 MySQLdb 類庫(可以從 http://www.djangoproject.com/r/python-mysql/ 獲得)來連接 MySQL 數據庫,取回一些記錄,將它們提供給模板以顯示一個網頁:

 

 
  1. from django.shortcuts import render_to_response 
  2. import MySQLdb 
  3.  
  4. def book_list(request): 
  5. db = MySQLdb.connect(user='me', db='mydb', passwd='secret', host='localhost'
  6. cursor = db.cursor() 
  7. cursor.execute('SELECT name FROM books ORDER BY name'
  8. names = [row[0] for row in cursor.fetchall()] 
  9. db.close() 
  10. return render_to_response('book_list.html', {'names': names}) 

這個方法可用,但很快一些問題將出現在你面前:

我們將數據庫連接參數硬行編碼于代碼之中。 理想情況下,這些參數應當保存在 Django 配置中。

我們不得不重復同樣的代碼: 創建數據庫連接、創建數據庫游標、執行某個語句、然后關閉數據庫。 理想情況下,我們所需要應該只是指定所需的結果。

它把我們栓死在 MySQL 之上。 如果過段時間,我們要從 MySQL 換到 PostgreSQL,就不得不使用不同的數據庫適配器(例如 psycopg 而不是 MySQLdb ),改變連接參數,根據 SQL 語句的類型可能還要修改SQL 。 理想情況下,應對所使用的數據庫服務器進行抽象,這樣一來只在一處修改即可變換數據庫服務器。 (如果你正在建立一個開源的Django應用程序來盡可能讓更多人使用的話,這個特性是非常適當的。)

正如你所期待的,Django數據庫層正是致力于解決這些問題。 以下提前揭示了如何使用 Django 數據庫 API 重寫之前那個視圖。

 

 
  1. from django.shortcuts import render_to_response 
  2. from mysite.books.models import Book 
  3.  
  4. def book_list(request): 
  5. books = Book.objects.order_by('name'
  6. return render_to_response('book_list.html', {'books': books}) 

我們將在本章稍后的地方解釋這段代碼。 目前而言,僅需對它有個大致的認識。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色激情av | 国产精品视频一区二区免费不卡 | 日韩av一区二区三区在线 | 亚洲乱码久久久 | 国产精品久久久久久久久久久不卡 | www久| 4hu影视 | 久久久久久一区 | 国产精品国产成人国产三级 | 久艹视频| 四虎av | 国产伦精品一区二区三区四区视频 | 九九av | 国产伦精品一区二区三区不卡视频 | 亚洲精品久久久狠狠狠爱 | 日韩久草| 日韩伦理一区二区 | 噜噜噜天天躁狠狠躁夜夜精品 | 午夜精品久久久久久久久久久久 | 精品亚洲一区二区三区四区五区 | 国产成人免费在线观看 | 午夜视频网 | 在线视频成人 | 91香蕉视频 | 亚洲国产高清高潮精品美女 | 中文字幕在线免费视频 | 欧美日韩一区二区在线 | 国精产品一区二区三区黑人免费看 | 日韩久久久久久久 | 国产在线一区二区三区 | 国产精品永久免费 | 欧美日韩1区 | 热99这里只有精品 | 亚洲高清免费视频 | 日日骚视频 | 怡红院免费在线视频 | 成年人黄色免费视频 | 日韩精品免费在线视频 | 麻豆久久精品 | 欧美日在线 | 超碰日本 |