Added Heroku and Gulp support

* Deleted some unnecessary info inside asgi.py
This commit is contained in:
Andrew-Chen-Wang 2020-04-13 10:57:42 -04:00
parent 041751a359
commit f0813a24b2
3 changed files with 23 additions and 10 deletions

View File

@ -1,5 +1,9 @@
release: python manage.py migrate
{% if cookiecutter.use_async == "y" -%}
web: gunicorn config.asgi:application -k uvicorn.workers.UvicornWorker
{%- else %}
web: gunicorn config.wsgi:application
{%- endif %}
{% if cookiecutter.use_celery == "y" -%}
worker: celery worker --app=config.celery_app --loglevel=info
beat: celery beat --app=config.celery_app --loglevel=info

View File

@ -7,7 +7,6 @@ For more information on this file, see
https://docs.djangoproject.com/en/dev/howto/deployment/asgi/
"""
import os
import sys
from pathlib import Path
@ -17,22 +16,15 @@ from django.core.asgi import get_asgi_application
# {{ cookiecutter.project_slug }} directory.
app_path = Path(__file__).parents[1].resolve()
sys.path.append(str(app_path / "{{ cookiecutter.project_slug }}"))
# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
# if running multiple sites in the same mod_wsgi process. To fix this, use
# mod_wsgi daemon mode with each site in its own daemon process, or use
# os.environ["DJANGO_SETTINGS_MODULE"] = "config.settings.production"
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
# This application object is used by any ASGI server configured to use this
# file. This includes Django's development server, if the ASGI_APPLICATION
# setting points here.
# This application object is used by any ASGI server configured to use this file.
django_application = get_asgi_application()
# Apply ASGI middleware here.
# from helloworld.asgi import HelloWorldApplication
# application = HelloWorldApplication(application)
# Import websocket application here, so apps from django_application are loaded first
from .websocket import websocket_application # noqa isort:skip
from config.websocket import websocket_application # noqa isort:skip
async def application(scope, receive, send):

View File

@ -110,6 +110,18 @@ function imgCompression() {
.pipe(dest(paths.images))
}
{% if cookiecutter.use_async == 'y' -%}
// Run django server
function asyncRunServer(cb) {
var cmd = spawn('gunicorn', [
'config.asgi', '-k', 'uvicorn.workers.UvicornWorker', '--reload'
], {stdio: 'inherit'}
)
cmd.on('close', function(code) {
console.log('gunicorn exited with code ' + code)
})
}
{%- else %}
// Run django server
function runServer(cb) {
var cmd = spawn('python', ['manage.py', 'runserver'], {stdio: 'inherit'})
@ -118,6 +130,7 @@ function runServer(cb) {
cb(code)
})
}
{%- endif %}
// Browser sync server for live reload
function initBrowserSync() {
@ -166,8 +179,12 @@ const generateAssets = parallel(
// Set up dev environment
const dev = parallel(
{%- if cookiecutter.use_docker == 'n' %}
{%- if cookiecutter.use_async == 'y' %}
asyncRunServer,
{%- else %}
runServer,
{%- endif %}
{%- endif %}
initBrowserSync,
watchPaths
)