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