Django學習系列18 使用遷移建立生產資料庫

2022-06-28 13:00:12 字數 1534 閱讀 5506

django生成乙個很有幫助的錯誤資訊,大意是說沒有正確設定資料庫。

你可能會有疑惑,為什麼在單元測試一切都執行ok,這是因為django為單元測試建立了專用的測試資料庫——這是django中testcase所做的神奇事情之一。

為了設定好真正的資料庫,要建立乙個資料庫,sqlite資料庫只是硬碟中的乙個檔案,在django的setting.py檔案中發現,預設情況下,django把資料庫儲存為db.sqlite3,放在專案的基目錄中

我們在models.py檔案和後來建立的遷移檔案中告訴django建立資料庫所需的一切資訊,為了建立真正的資料庫,要使用django中另乙個強大manage.py命令——migrate

# python manage.py migrate

operations to perform:

running migrations:

這個時候,重新整理localhost上的頁面,發現錯誤頁面不見了。然後執行功能測試:

assertionerror: '

1: buy peacock feathers

' not found in ['

1:buy peacock feathers

', '

1:buy peacock feathers

']

快成功了,只需要讓清單顯示正確的序號即可,另乙個出色的django模板標籤forloop.counter能幫助解決這個問題。

<

tr><

td>}: }

td>

tr>

再試一次,應該會看到功能測試執行到最後了:

self.fail("

完成測試")

assertionerror: 完成測試

不過執行測試時,可能會注意什麼不對勁的地方

上一次執行測試時在資料庫中遺留了資料。需要一種自動清理機制,可以手動清理,方法是先刪除資料庫在執行migrate命令新建。

# rm

db.sqlite3

清理之後要確保功能測試能通過。

除了這個小問題之外,我們的**基本上可以正常執行了,下面做一次提交

# git status # 看見home.html, tests.py, and views.py所做的改動

# git

diff

# git add lists

# git commit -m "

redirect after post, and show all items in template——發布後重定向,並顯示模板中的所有項

"# git tag end-of-chapter-05

小結:編寫乙個表單,使用post請求把新待辦事項新增到清單中;

建立了乙個簡單的資料庫模型,用來儲存待辦事項;

使用了至少三種功能測試的除錯技術

有用的概念:

Django 1 8安裝使用

1 使用pip安裝django,pip是什麼,如何安裝?自行放狗搜 pip install django 1.9 2 建立專案 django admin startproject djangosite 3 執行專案 cd djangosite python manage.py runserver 1...

Django學習系列之django分頁

from django.core.paginator import paginator objects post.objects.filter status published 從資料庫中取出所有status published狀態的文章p paginator objects,3 例項化pagina...

Django學習系列之CSRF

什麼是csrf 你的 會以為這個請求是使用者自己發來的,其實呢,這個請求是那個惡意 偽造的 django提供的csrf防護機制 django 第一次響應來自某個客戶端的請求時,會在伺服器端隨機生成乙個 token,把這個 token 放在 cookie 裡。然後每次 post 請求都會帶上這個 to...