Django官方文檔學(xué)習(xí)筆記:Tutorial: Part 1
最近對(duì)Python產(chǎn)生了興趣,前幾天看了下網(wǎng)上的資料,熟悉了下基本語(yǔ)法。俗話說(shuō)“實(shí)踐出真知”,有了基本的了解后得實(shí)踐一下,這樣便于加深對(duì)Python的理解。
那做點(diǎn)什么呢?準(zhǔn)備學(xué)習(xí)一下Django開(kāi)發(fā)。據(jù)網(wǎng)上描述了解到,它是個(gè)快速開(kāi)發(fā)的web框架,便于快速推出一個(gè)web的模型,演示。
谷歌了下,找到幾個(gè)鏈接:
官方入門(mén)教程(英文,當(dāng)前官網(wǎng)默認(rèn)是1.5,你也可以跳到其它版本) https://docs.djangoproject.com/en/1.5/
官方入門(mén)教程中文版(1.4,發(fā)現(xiàn)只翻譯到入門(mén)的前兩節(jié)) http://django-document-cn.readthedocs.org/en/latest/
Django Book 2.0(翻譯的不錯(cuò),還有評(píng)論。但版本舊了點(diǎn),英文困難的可以參考一下) http://djangobook.py3k.cn/2.0/
Django Book 2.0(翻譯的不錯(cuò),還有評(píng)論。但版本舊了點(diǎn),英文困難的可以參考一下) http://djangobook.py3k.cn/2.0/
首先要準(zhǔn)備的就是開(kāi)發(fā)環(huán)境了:
1、Python(2.5~2.7)
網(wǎng)上下了個(gè)2.7.3版本,巴拉巴拉安裝……不細(xì)表了。
2、下載django開(kāi)發(fā)包。
下的是1.5版本。解壓,命令行進(jìn)入其目錄運(yùn)行“python setup.py install”,安裝……
3、創(chuàng)建django項(xiàng)目 https://docs.djangoproject.com/en/1.5/intro/tutorial01/
根據(jù)官方文檔說(shuō)明,命令行進(jìn)入你喜歡的地方運(yùn)行“python django-admin.py startproject mysite”創(chuàng)建mysite項(xiàng)目(實(shí)際開(kāi)發(fā)時(shí),還是推薦使用Eclipse,裝上python的PyDev插件。直接創(chuàng)建django項(xiàng)目更方便)。
windows會(huì)出現(xiàn)如下錯(cuò)誤提示:
D:\Temp>python django-admin.py startproject mysite
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
windows下需帶上安裝路徑創(chuàng)建,例如python安裝在C盤(pán)下:“python C:\Python27\Scripts\django-admin.py startproject mysite”python: can't open file 'django-admin.py': [Errno 2] No such file or directory
官方文檔中給出具體不同環(huán)境下的說(shuō)明:
“This will create a mysite directory in your current directory. If it didn’t work, see Problems running django-admin.py.”
4、啟動(dòng)開(kāi)發(fā)server
命令行進(jìn)入創(chuàng)建的mysite目錄,運(yùn)行“python manage.py runserver”,服務(wù)即提示跑起來(lái)了。可登錄“http://127.0.0.1:8000”看一下效果。
可能端口沖突、或需要從別的機(jī)器訪問(wèn)該應(yīng)用,可按照如下方式啟動(dòng):
a.指定端口號(hào)
python manage.py runserver 8080
b.允許從你的IP地址訪問(wèn)(默認(rèn)只能本機(jī)127.0.0.1訪問(wèn))
python manage.py runserver 0.0.0.0:8000
5、安裝數(shù)據(jù)庫(kù)
Django支持四種數(shù)據(jù)庫(kù):PostgreSQL,SQLite3,MySQL,Oracle.
可以修改"mysite/settings.py"文件,來(lái)設(shè)置相應(yīng)的數(shù)據(jù)庫(kù)。不過(guò)作為初學(xué)者,使用Python自帶的SQLite方便。
默認(rèn)時(shí)區(qū)是“America/Chicago”,需要修改為你當(dāng)前的時(shí)區(qū)(國(guó)內(nèi)“Asia/Shanghai”)。
INSTALLED_APPS:
項(xiàng)目默認(rèn)安裝的一些應(yīng)用,這些應(yīng)用依賴于數(shù)據(jù)庫(kù)。
命令行進(jìn)入manage.py的目錄,執(zhí)行“python manage.py syncdb”命令將數(shù)據(jù)庫(kù)初始化一下。你會(huì)看但相關(guān)的Creating table信息,并提示你是否創(chuàng)建一個(gè)超級(jí)用戶。
6、創(chuàng)建模型
命令行繼續(xù)在該目錄創(chuàng)建投票應(yīng)用 “python manage.py startapp polls”
打開(kāi)“polls\models.py”,編寫(xiě)兩個(gè)Python類(lèi):Poll、Choice。
7、激活模型
也就是把新建的那兩個(gè)模型類(lèi)初始化一下,讓它在數(shù)據(jù)庫(kù)中也生成相應(yīng)的表。
python manage.py sql polls
如果模型有錯(cuò)誤,會(huì)有提示信息出來(lái)。確認(rèn)無(wú)誤可執(zhí)行“python manage.py syncdb”完成數(shù)據(jù)庫(kù)表映射。
8、使用API
這一塊主要講的是,如何將該項(xiàng)目的DB部分在python的shell中進(jìn)行CRUD等測(cè)試。并推薦在寫(xiě)models時(shí)添加__unicode__()方法。
這是一個(gè)類(lèi)似于java的toString方法。有了該方法,在django打印查詢到的models對(duì)象時(shí),會(huì)顯示該方法返回的值。
4、啟動(dòng)開(kāi)發(fā)server
命令行進(jìn)入創(chuàng)建的mysite目錄,運(yùn)行“python manage.py runserver”,服務(wù)即提示跑起來(lái)了。可登錄“http://127.0.0.1:8000”看一下效果。
可能端口沖突、或需要從別的機(jī)器訪問(wèn)該應(yīng)用,可按照如下方式啟動(dòng):
a.指定端口號(hào)
python manage.py runserver 8080
b.允許從你的IP地址訪問(wèn)(默認(rèn)只能本機(jī)127.0.0.1訪問(wèn))
python manage.py runserver 0.0.0.0:8000
5、安裝數(shù)據(jù)庫(kù)
Django支持四種數(shù)據(jù)庫(kù):PostgreSQL,SQLite3,MySQL,Oracle.
可以修改"mysite/settings.py"文件,來(lái)設(shè)置相應(yīng)的數(shù)據(jù)庫(kù)。不過(guò)作為初學(xué)者,使用Python自帶的SQLite方便。
列一下該配置文件中的幾個(gè)主要變量。
TIME_ZONE:默認(rèn)時(shí)區(qū)是“America/Chicago”,需要修改為你當(dāng)前的時(shí)區(qū)(國(guó)內(nèi)“Asia/Shanghai”)。
LANGUAGE_CODE = 'zh-cn'
語(yǔ)言設(shè)為中文
語(yǔ)言設(shè)為中文
項(xiàng)目默認(rèn)安裝的一些應(yīng)用,這些應(yīng)用依賴于數(shù)據(jù)庫(kù)。
命令行進(jìn)入manage.py的目錄,執(zhí)行“python manage.py syncdb”命令將數(shù)據(jù)庫(kù)初始化一下。你會(huì)看但相關(guān)的Creating table信息,并提示你是否創(chuàng)建一個(gè)超級(jí)用戶。
6、創(chuàng)建模型
命令行繼續(xù)在該目錄創(chuàng)建投票應(yīng)用 “python manage.py startapp polls”
打開(kāi)“polls\models.py”,編寫(xiě)兩個(gè)Python類(lèi):Poll、Choice。
7、激活模型
也就是把新建的那兩個(gè)模型類(lèi)初始化一下,讓它在數(shù)據(jù)庫(kù)中也生成相應(yīng)的表。
打開(kāi)"mysite/settings.py"文件,在"INSTALLED_APPS"屬性中加入polls。
命令行中執(zhí)行以下命令,會(huì)打印出polls應(yīng)用相關(guān)模型的SQL語(yǔ)句(官方文檔中還提及其它各種SQL生成命令,感興趣的可以試試)。INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
)
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
)
python manage.py sql polls
如果模型有錯(cuò)誤,會(huì)有提示信息出來(lái)。確認(rèn)無(wú)誤可執(zhí)行“python manage.py syncdb”完成數(shù)據(jù)庫(kù)表映射。
8、使用API
這一塊主要講的是,如何將該項(xiàng)目的DB部分在python的shell中進(jìn)行CRUD等測(cè)試。并推薦在寫(xiě)models時(shí)添加__unicode__()方法。
這是一個(gè)類(lèi)似于java的toString方法。有了該方法,在django打印查詢到的models對(duì)象時(shí),會(huì)顯示該方法返回的值。
class Poll(models.Model):
#
def __unicode__(self):
return self.question
class Choice(models.Model):
#
def __unicode__(self):
return self.choice_text
#

def __unicode__(self):
return self.question
class Choice(models.Model):
#

def __unicode__(self):
return self.choice_text
posted on 2013-04-07 18:35 此號(hào)已被刪 閱讀(2594) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): Python