建立虛擬環境
python -m venv ll_env
運行模塊venv,創建名為ll_env的虛擬環境
激活虛擬環境
$ source ll_env/bin/activate
在這種情況下,你可以在環境中安裝包,并使用已安裝的包。你在ll_env中安裝的包僅在該環境處于活動狀態時才可用。
關閉虛擬環境
$ deactivate
如果關閉運行虛擬環境的終端,虛擬環境也將不再處于活動狀態
安裝Django
pip install Django
由于我們是在虛擬環境中工作,因此在所有的系統中,安裝Django的命令都相同:不需要指定標志--user,也無需使用python -m pip install package_name這樣較長的命令。
別忘了,Django僅在虛擬環境處于活動狀態時才可用。
在Django中創建項目
$ django-admin startproject learning_log .
讓Django新建一個名為learning_log的項目。 這個命令末尾的句點讓新項目使用合適的目錄結構,這樣開發完成后可輕松地將應用程序部署到服務器。
項目目錄結構
目錄learning_log包含4個文件 ,其中最重要的是settings.py、urls.py和wsgi.py。文件settings.py指定Django如何與你的系統交互以及如何管理項目。在開發項目的過程中,我們將修改其中一些設置,并添加一些設置。文件urls.py告訴Django應創建哪些網頁來響應瀏覽器請求。
文件wsgi.py幫助Django提供它創建的文件,這個文件名是web server gateway interface(Web服務器網關接口)的首字母縮寫。
它還創建了一個名為manage.py的文件,這是一個簡單的程序,它接受命令并將其交給Django的相關部分去運行。 我們將使用這些命令來管理諸如使用數據庫和運行服務器等任務。
創建數據庫
python manage.py migrate # 通過manage.py創建數據庫遷移
首次執行命令migrate時,將讓Django確保數據庫與項目的當前狀態匹配。在使用SQLite(后面將更詳細地介紹)的新項目中首次執行這個命令時,Django將新建一個數據庫。Django指出它將創建必要的數據庫表,用于存儲我們將在這個項目(Synchronize unmigrated apps,同步未遷移的應用程序)中使用的信息,再確保數據庫結構與當前代碼(Apply all migrations,應用所有的遷移)匹配。
其輸出表明Django又創建了一個文件——db.sqlite3。SQLite是一種使用單個文件的數據庫, 是編寫簡單應用程序的理想選擇, 因為它讓你不用太關注數據庫管理的問題。
運行項目
python manage.py runserver 8000
創建應用程序
Django項目由一系列應用程序組成,它們協同工作,讓項目成為一個整體。
python manage.py startapp learning_logs # 創建名為learning_logs的應用程序
定義模型
# 打開learning_logs/models.py
from django.db import models
class Topic(models.Model):
"""用戶學習的主題"""
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
"""返回模型的字符串表示"""
return self.text
我們需要告訴Django,默認應使用哪個屬性來顯示有關主題的信息。Django調用方法str()來顯示模型的簡單表示。在這里,我們編寫了方法str(),它返回存儲在屬性text 中的字符串
激活模型
要使用模型,必須讓Django將應用程序包含到項目中。為此,打開settings.py(它位于目錄learning_log/learning_log中) ,你將看到一個這樣的片段,即告訴Django哪些應用程序安裝在項目中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
把learning_logs加入這個列表即可
INSTALLED_APPS = [
...
'learning_logs'
]
接下來需要讓Django修改數據庫,使其能夠存儲與模型Topic相關的信息
$ python manage.py makemigrations learning_logs
命令makemigrations讓Django確定該如何修改數據庫,使其能夠存儲與我們定義的新模型相關聯的數據。 輸出表明Django創建了一個名為0001_initial.py的遷移文件, 這個文件將在數據庫中為模型Topic創建一個表。
接下來遷移數據庫
$ python manage.py migrate