網站計劃001
1 在後臺可以增加地點,地點有描述。(暫時這樣,以後再擴展)
2 用戶可以註冊、登錄、登出
3 註冊後會收到郵件確認
4 用戶可以使用註冊的郵箱來重置密碼
5 用戶/非用戶可以瀏覽地點列表、各地點詳細頁面。
6 用戶可以在瀏覽地點的時候選擇“想去”或者“去過”,可以添加簡短的描述,去過可以平分。可以修改和刪除自己去過和想去的地點。
7 用戶可以對地點進行評論,可以修改和刪除自己添加的評論。
開始實現
第一天
準備工作
設置,新建app
修改settings.py:
DATABASE_ENGINE = 'sqlite3'
DATABASE_NAME = 'travelsite'
切換到項目目錄,執行
python manage.py syncdb
按照提示輸入超級用戶以及密碼。
運行
python manage.py startapp travel
這一步會創建一個travel文件夾,這個就是新建的app。
安裝(激活)這個新建的app需要修改settings:
INSTALLED_APPS = (
……
'travelsite.travel',
)
建立腳本文件
在項目文件夾下建立shell.py,內容如下:
#!/bin/sh
python manage.py shell
這個shell腳本可以在終端裏直接敲入Django代碼。
新建syncdb.sh,內容:
#!/bin/sh
python manage.py syncdb
執行該腳本即可同步數據庫
建立模型
修改models.py,添加一個模型:
class Place(models.Model):
name = models.CharField(max_length=200)
desc = models.TextField()
def __unicode__(self):
return self.name
再次執行syncdb
自動的Admin
1 激活 admin
修改settings,添加 INSTALLED_APPS,添加:
'django.contrib.admin',
執行同步數據庫的shell腳本
註釋掉urls.py 中 admin 的兩行。
訪問http://127.0.0.1:8000/admin/,持續出錯,顯示:
OperationalError: no such table: django_session
查明原因,settings中配置的數據庫應該是絕對路徑,修改爲:
DATABASE_NAME = '/root/workspace/travelsite/travelsite'
訪問http://127.0.0.1:8000/admin/,出現admin界面。
2 註冊模型
在travel文件夾下創建admin.py,輸入內容:
from travelsite.travel.models import Place
from django.contrib import admin
admin.site.register(Place)
這樣就可以在admin界面添加、修改和刪除新的地點了。
主要參考:
Django documentation, Tutorial: Part 1 | Part 2