1. 先下載Python,並安裝之。
2. 設定系統的PATH,增加指向Python的目錄(例:c:\Python2.6)。
3. 下載Django,解壓縮之後,打開『命令提示字元』視窗(命令列),並轉換到解壓縮後的目錄中,執行 setup.py install。Django 的程式碼會被複製到Python的目錄中。
4. 記得要把 django-admin.py 從 C:\(Python的目錄)\Scripts,copy 到Python的主目錄下,這樣在做下一步時,才不會找不到django-admin.py。
5. 接下來是增加一個site,開始產生網站程式。先在命令列中,轉移到欲存放網站程式碼的地方,假設是在 C:\Documents and Settings\Administrator\。接下來執行:
django-admin.py startproject <網站名稱>。(例: Mytest)
註:其實,可以打django-admin help,就可以了解所有的指令喔!
django-admin help <指令>,就可以看到該指令的說明。
6. 接下來,以此例為說明,會在 C:\Documents and Settings\Administrator\下出現 Mytest 目錄。此目錄下有四個檔案:
__init__.py
manage.py
settings.py
urls.py
7. 在 setting.py 中編輯設定資料庫連線資料。
DATABASE_ENGINE = 'sqlite3' (本例使用sqlite)
DATABASE_NAME = 'C:\Documents and Settings\Administrator\Mytest\sqlite.db' (本例使用sqlite,所以填入欲使檔案所在之位置及檔案名稱。)
8. cd Mytest
9. 執行 manage.py syncdb。Django 會先產生對應的資料庫檔案。
10. 接下來,新增一個應用程式:pools。
manage.py startapps pools
在 Mytest 目錄下,多了一個pools 的目錄。裡面多了三個檔案:
__init__.py
models.py
views.py
11. 根據 Django Project 的文件中教學文章
『Writing your first Django app, part 1 ~4』,現在要來建立model。一共有兩個model: Pool and Choice。編輯 model.py 如下:
from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
12. 啟動 models。編輯 settings.py。在INSTALLED_APPS下增加:'Mytest.pools'。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'Mytest.polls' )
13. 執行 manage.py suncdb
14. 加入 admin 介面:
a. 編輯 settings.py。在INSTALLED_APPS下增加:'django.contrib.admin'。
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'Mytest.polls' )
b. 執行 manage.py suncdb
c. 編輯 urls.py,將下列黑體字列的"#"拿掉。
from django.conf.urls.defaults import *
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Example:
# (r'^mysite/', include('mysite.foo.urls')),
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)), )
15. 啟動管理介面。
mamage.py runserver
16.
打開瀏覽器,執行:http://127.0.0.1:8000/admin/,出現登錄畫面。第一步算是完成了。
17. 如果前面忘記建立superuser,可以用指令 manage.py createsuperuser 建立。
18. 登入"admin"之後,出現"Site administration" 的畫面。但只能對『Sites』、『Groups』、『Users』等基本資料做管理。這是最陽春的管理介面。
19. 不過,我們可以建立一個 admin.py 的檔案,增加下列程式碼,讓前面建立的"Polls" 可以被加入到管理介面,可直接用Django的管理介面來做增刪資料的動作。
from Mytest.polls.models import Poll
from django.contrib import admin
admin.site.register(Poll)
畫面結果:
20.依樣畫葫蘆,把 Choice 的表格也加入吧!
from Mytest.polls.models import Poll
from Mytest.polls.models import Choice
from django.contrib import admin
admin.site.register(Choice)
admin.site.register(Poll)
畫面:
21.按下 polls,再隨選或新增一個項目,可以看到下面的畫面(按下日期也有日曆畫面可以選擇喔,預設的畫面就已經如此完整了!):
22. 當然,我們可以做得再細一些,將 admin.py 新增或修改成下列的樣子:
from Mytest.polls.models import Poll
from Mytest.polls.models import Choice
from django.contrib import admin
class ChoiceInline(admin.TabularInline):
model = Choice
extra = 4
class PollAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields':['question']}),
('Date information', {'fields':['pub_date']})
]
inlines = [ChoiceInline]
list_display = ('question', 'pub_date')
list_filter = ['pub_date']
search_fields = ['question']
date_hierarchy = 'pub_date'
admin.site.register(Choice)
admin.site.register(Poll, PollAdmin)
下面的畫面,已經用紅框框把顯示效果和程式碼做一個連結:
若點選 Question 其中的一項,例如:"台北市民調2009-05-15",就會看到以下的畫面:
其實這樣已經可以增修刪這 Poll 及 Choice 的資料了,我們可以全部按照預設,一行code都不用寫,也可以寫幾行code就有這麼多變化,Django admin interface 真是很powerful 啊。
admin.py 程式碼裡面的API,在文件:The Django admin site 中都有詳細的提到。
待續.......................
步驟19
回覆刪除from Mytest.polls.models import Poll
應該改為
from Mytest.pools.models import Poll
因為步驟10創建的app 是 pools
我想請問一下 我再第五步驟發生一些問題
回覆刪除我輸入 django-admin.py startproject
這段程式要建置網頁時候
他都會出現 讓我選擇一個工具才開啟
請問我是哪邊發生問題
我一直都卡在無法建置網頁那邊
回覆刪除我參考了很多網頁的教學步驟
基本上 我都和其他人一樣
但是一直都無法建置出 網頁
真的好奇怪