このテンプレートは、DjangoとVueを使用したアプリケーションの最小構成です。
このプロジェクトでは、バックグラウンドのDjangoとフロントエンドのVueが分かれています。
バックグラウンドのDjangoは、Web APIを管理し、Django REST Frameworkを使用します。
createcreateproject
フロントエンドのVueは、npm、webpackを使用します。
Vue CLI
- Django
- Django REST framework
- Django Whitenoise, CDN Ready
- Vue CLI 3
- Vue Router
- Vuex
- Gunicorn
- Configuration for Heroku Deployment
場所 | 内容 |
---|---|
/backend |
Django Project & Backend Config |
/backend/api |
Django App (/api ) |
/src |
Vue App . |
/src/main.js |
JS Application Entry Point |
/public/index.html |
Html Application Entry Point (/ ) |
/public/static |
Static Assets |
/dist/ |
Bundled Assets Output (generated at yarn build ) |
$ git clone https://github.com/haruyasu/django-vue-template
$ cd django-vue-template
Setup
$ pip3 install pipenv
$ npm install
$ pipenv install --dev && pipenv shell
$ python3 manage.py migrate
$ python3 manage.py runserver
URL
localhost:8080
$ npm run serve
URL
localhost:8000
$ npm run build
$ python3 manage.py runserver
- Set
ALLOWED_HOSTS
onbackend.settings.prod
$ heroku apps:create django-vue-template-haru
$ heroku git:remote --app django-vue-template-haru
$ heroku buildpacks:add --index 1 heroku/nodejs
$ heroku buildpacks:add --index 2 heroku/python
$ heroku addons:create heroku-postgresql:hobby-dev
$ heroku config:set DJANGO_SETTINGS_MODULE=backend.settings.prod
$ heroku config:set DJANGO_SECRET_KEY='(your django SECRET_KEY value)'
$ git push heroku
Herokuのnodejsビルドパックは、package.jsonファイルからすべての依存関係のインストールを処理します。
そして、npm run buildでdistフォルダが作成されます。
Pythonビルドパックは、Procfileを検出し、すべてのPython依存関係をインストールします。
Procfileは、Djangoを実行してから、herokuが推奨するgunicornを使用してDjangoアプリを起動します。