/DjangoProjectStarter

Django專案的起始樣板

Primary LanguagePythonMIT LicenseMIT

Django Project Starter

專案目錄結構

本專案可當作Django專案的起始樣板,為了讓專案更為結構化且符合實務(區分測試及正式機等不同環境的設定及所需套件), 此專案採用Django專案範本產生器Cookiecutter DjangoTwo Scoops of Django 3.x一書所偏好的目錄結構, 而非Django project預設的目錄結構。 專案根目錄DjangoProjectStarter/包含以下子目錄及檔案:

在本地端的開發(使用Docker)

  1. 複製dot_env_file_template檔為.env檔並調整其中的設定值(DJANGO_SECRET_KEY、PostgreSQL帳密等等)
cp dot_env_file_template .env
  1. 建立Docker image
docker-compose -f local.yaml build
  1. 啟用服務
docker-compose -f local.yaml up -d
  1. 創建超級管理員帳號
docker-compose -f local.yaml run --rm django python manage.py createsuperuser
  • 創建新的APP
docker-compose -f local.yaml exec django python manage.py startapp appname
docker-compose -f local.yaml exec django mv appname starter
  • 建立model
docker-compose -f local.yaml exec django python manage.py makemigrations
docker-compose -f local.yaml exec django python manage.py migrate
  • 查看logs
docker-compose -f local.yaml logs -f

在production機佈署(使用Docker)

  1. 複製dot_env_file_template檔為.env檔並調整其中的設定值(DJANGO_SECRET_KEY、PostgreSQL帳密、DJANGO_ALLOWED_HOSTS等等)
cp dot_env_file_template .env
  1. 調整設定docker/nginx.conf中的設定

  2. 建立Docker image

docker-compose -f production.yaml build
  1. 啟用服務
docker-compose -f production.yaml up -d
  1. 創建超級管理員帳號
docker-compose -f production.yaml run --rm django python manage.py createsuperuser
  • 查看logs
docker-compose -f production.yaml logs -f

在本地端的開發(不使用Docker)

  1. 下載此專案,並將DjangoProjectStarter/及starter/目錄更名為符合你的專案的名稱,並修改config/settings/ /base.py檔案中的APPS_DIR變數的值(將starter更名)。
git clone https://github.com/YihaoSu/DjangoProjectStarter.git
  1. 依據你的專案所需,安裝並建立PostgreSQL或MySQL資料庫

  2. 依據你的開發環境(資料庫的帳密及資料庫名、DJANGO_SECRET_KEY等等),修改dot_env_file_template檔中的設定值,並將檔名改為.env

  3. 利用virtualenvConda建立獨立的開發環境 (Python 版本: 依你的專案所需)

  4. 啟動進入該開發環境後,輸入以下指令以便安裝專案所需的Python套件 (Django 版本: requirements檔是3.2 LTS, 依你的專案所需做變更)

cd 專案名稱
pip install -r requirements/local.txt
  1. 在更名後的starter/目錄中,開發你專案所需的Django apps ,並擴充config/目錄中的設定檔及requirements/目錄中的套件需求檔

  2. 執行完以下指令後,在瀏覽器輸入 http://127.0.0.1:8000 或是 http://localhost:8000 即可在本地端瀏覽此Django專案所建立的網頁

# 執行manage.py時會預設載入 config/settings/local.py 本地端設定檔
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser # 有使用Django admin才需要
python manage.py collectstatic # 有使用[static files](https://docs.djangoproject.com/en/3.2/howto/static-files/)才需要,會在專案根目錄中建立名為staticfiles的資料夾,並將各APP所屬static files彙集到此資料夾中
python manage.py runserver