在 Windows 上安裝 Django 小記
參考文章:
- The Django Book — Django Book 0.1 documentation (django-book.readthedocs.io)
- The web framework for perfectionists with deadlines | Django (djangoproject.com)
- Project and Apps · Django Girls 學習指南 (gitbooks.io)
- Python 3 Tutorial 第八堂(2)建立 App 與模型 (openhome.cc)
- 架設 Django 開發環境 – 學習該如何開發 Web | MDN (mozilla.org)
- 如何在 Windows 上安装 Django | Django 文档 | Django (djangoproject.com)
安裝 Python
安裝虛擬環境
pip install virtualenvwrapper-win
網路上的參考路徑結構示意圖
Windows10下
創建虛擬環境(mkvirtualenv)
PS D:\env_8> mkvirtualenv my_django_env
PS D:\env_8>python -m venv myvenv
啟動虛擬環境
env_804\Scripts\activate
使用虛擬環境
- deactivate — 退出當前的Python虛擬環境
- workon — 列出可用的虛擬環境
- workon name_of_environment — 激活指定的Python虛擬環境
- rmvirtualenv name_of_environment — 刪除指定的環境
安裝DJango
pip install django
建立專案
django-admin startproject 專案名稱
執行專案
cd 專案名稱
py manage.py runserver
app
在env\project\下建立apps目錄,將app建立在apps中
建立 Django application(app)
- command mode進入apps路徑,「cd proejct名稱\apps」
- 執行指令 py ..\manage.py startapp app名稱
- app名稱下的apps.py中
name的內容要從「app名稱」改為「apps.app名稱」 - 修改project資料夾下的settings.py中,找到「INSTALLED_APPS」區段,加入上面的「app名稱」到設定檔中
如果是類似步驟3,有模組名稱的,要改為「apps.app名稱」
app的建立
- 新增app下的views.py,在裡面建立回應的function
- 在project路徑下urls.py裏新增import與urlpatterns
- import:from apps.app1.views import hello_world
- urlpatterns:path(‘hello/$’, hello_world),
Template
- 在project資料夾下,新增一個Templates目錄
- 修改project下settings.py中
- import os
- TEMPLATES屬性的值,新增一個
[os.path.join(BASE_DIR, ‘templates’).replace(‘\\’, ‘/’)]
- 新增一個hello_world.html的檔案
Models
app下的db設定
在app下的models.py修改需要的db設定與table格式
- app下的admin.py要改
- import
- register
- models.py裏要修改table的定義
- views.py
- 如果有用到table,要import
models.filed|Model field reference | Django documentation | Django (djangoproject.com)
- blank=True,這取決於該欄位在表單中是否為必填項
- null=True,該欄位允許null值(空值以null表示)
同步資料庫
- 在project路徑下,輸入「python manage.py makemigrations」
會在app下建立「migrations」的資料夾,讓 migrate 指令執行時,可以照著這份紀錄更新資料庫。
或是輸入「python manage.py makemigrations 名稱」以指定app - 事先知道未來migrate會做的動作是什麼?
「python manage.py sqlmigrate app名稱 0001」 - 輸入「python manage.py migrate」
將models.py中的欄位設定寫入資料庫
migrate 指令會根據 INSTALLED_APPS 的設定,按照 app 順序建立或更新資料表,將你在 models.py 裡的更新跟資料庫同步。
多資料庫時,輸入「python manage.py migrate –database=’users’」
其他
Admin
建立superuser
python manage.py createsuperuser
註冊Model class
- 在admin.py中,import 並註冊
from .models import Post admin.site.register(Post)
連接mariadb
# mysql
sudo apt-get install mysqldb-server libmysqlclient-dev
# mariadb
sudo apt-get install mariadb-server libmariadbclient-dev
sudo apt-get install python-pip python-dev
pip install mysqlclient
urls.py的urlpattern
URL dispatcher | Django documentation | Django (djangoproject.com)