Python網路編程05----django與資料庫的互動

來源:互聯網
上載者:User

標籤:python   網路編程   

介紹Django為多種資料庫後台提供了統一的調用API,在Django的協助下,我們不用直接編寫SQL語句。Django將關係型的表(table)轉換成為一個類(class)。而每個記錄(record)是該類下的一個對象(object)。我們可以使用基於對象的方法,來操縱關係型資料庫。


設定資料庫設定資料庫需要修改settings.py檔案如果使用的資料庫是mysql: [python] view plaincopy
  1. DATABASES = {  
  2.     ‘default‘: {  
  3.         ‘ENGINE‘ :  "django.db.backends.mysql"  
  4.         ‘NAME‘ : "djangodb"  
  5.         ‘HOST‘ : "localhost"  
  6.         ‘USER‘ : "root"  
  7.         ‘PASSWORD‘ : "123456" #   
  8.     }  
  9. }  
PORT如果不設定,會使用預設連接埠3306如果沒有安裝mysql,你也可以使用sqlite。SQLite非常適合測試,甚至可以部署在沒有大量並發寫入的情況下。由於SQLite使用的本地檔案系統作為儲存介質並且用原生的檔案系統許可權來做存取控制,像主機、連接埠、使用者、密碼這種資訊統統不需要只需要輸入如下資訊: [python] view plaincopy
  1. DATABASES = {  
  2.     ‘default‘: {  
  3.         ‘NAME‘: r‘C:\mysite\db\test.db‘,              #db目錄需要自己建立  
  4.         ‘ENGINE‘: ‘django.db.backends.sqlite3‘,  
  5.     }  
  6. }              
設計Model在傳統的關係型資料庫中,資料模型是表。在Django下,一個表為一個類。表的每一列是該類的一個屬性。在models.py中,我們建立一個只有一列的表,即只有一個屬性的類:
from django.db import modelsclass Test(models.Model):                         #用於定義資料模型的類    name = models.CharField(max_length=100)       #name列,資料類型為char,長度為100    def __unicode__(self):        return self.name
命令Django同步資料庫。Django根據models.py中描述的資料模型,在MySQL中真正的建立各個關係表:$python manage.py syncdb
設定View事先向資料庫中插入兩條資料
下面我們從資料庫中取出資料,並返回給http請求。在blog/views.py中,添加視圖。對於對應的請求,我們將從資料庫中讀取所有的記錄,然後返回給用戶端:

# -*- coding: utf-8 -*-from django.http import HttpResponsefrom blog.models import Testdef outStr(request):    blog_list = Test.objects.all()    blog_str  = map(str, blog_list)    return HttpResponse("<p>" + ' '.join(blog_str) + "</p>")

為了讓http請求能找到上面的程式,在blog/urls.py增加url連結:
from django.conf.urls import patterns, include, urlurlpatterns = patterns('',    # Examples:    # url(r'^$', 'myweb.views.home', name='home'),    url(r'^$', 'blog.views.outStr'),)

輸入python manage.py runserver運行伺服器
訪問127.0.0.1:8000/blog


上一講:Python網路編程04----初識Django下一講:


如果有什麼疑問歡迎到我的公眾號提問~

Python網路編程05----django與資料庫的互動

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.