標籤:python 網路編程
介紹Django為多種資料庫後台提供了統一的調用API,在Django的協助下,我們不用直接編寫SQL語句。Django將關係型的表(table)轉換成為一個類(class)。而每個記錄(record)是該類下的一個對象(object)。我們可以使用基於對象的方法,來操縱關係型資料庫。
設定資料庫設定資料庫需要修改settings.py檔案如果使用的資料庫是mysql:
[python] view plaincopy
- DATABASES = {
- ‘default‘: {
- ‘ENGINE‘ : "django.db.backends.mysql"
- ‘NAME‘ : "djangodb"
- ‘HOST‘ : "localhost"
- ‘USER‘ : "root"
- ‘PASSWORD‘ : "123456" #
- }
- }
PORT如果不設定,會使用預設連接埠3306如果沒有安裝mysql,你也可以使用sqlite。SQLite非常適合測試,甚至可以部署在沒有大量並發寫入的情況下。由於SQLite使用的本地檔案系統作為儲存介質並且用原生的檔案系統許可權來做存取控制,像主機、連接埠、使用者、密碼這種資訊統統不需要只需要輸入如下資訊:
[python] view plaincopy
- DATABASES = {
- ‘default‘: {
- ‘NAME‘: r‘C:\mysite\db\test.db‘, #db目錄需要自己建立
- ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
- }
- }
設計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與資料庫的互動