Home >Backend Development >Python Tutorial >Django application for production ready
To set up a Django application for production with the following requirements, you can follow the steps outlined below:
Install boto3 and django-storages to integrate AWS S3 with your Django app:
pip install boto3 django-storages
Update the Django settings (settings.py) to configure AWS S3:
AWS_ACCESS_KEY_ID = 'your-access-key'
AWS_SECRET_ACCESS_KEY = 'your-secret-key'
AWS_STORAGE_BUCKET_NAME = 'your-bucket-name'
AWS_S3_REGION_NAME = 'your-region' # e.g., 'us-east-1'
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com'
MEDIA_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/media/'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
Set up your database on Render and note down the connection details.
Install psycopg2 to connect Django with PostgreSQL:
pip install psycopg2-binary
Update your settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'your-db-name',
'USER': 'your-db-user',
'PASSWORD': 'your-db-password',
'HOST': 'your-db-host',
'PORT': 'your-db-port',
}
}
Install WhiteNoise to serve static files:
pip install whitenoise
Update MIDDLEWARE and STATICFILES_STORAGE in your settings.py:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware', # Add this after SecurityMiddleware
# Other middlewares
]
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
Security Settings:
DEBUG = False
ALLOWED_HOSTS = ['your-domain.com', 'your-render-subdomain.onrender.com']
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
Collect Static Files: Run the following command to collect all static files:
python manage.py collectstatic
Set up your project on Render by connecting to your GitHub repository.
Define environment variables on the Render platform for your Django settings (e.g., AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, DJANGO_SECRET_KEY, etc.).
Configure the build and start commands:
pip install -r requirements.txt
gunicorn your_project_name.wsgi:application
Following these steps will ensure your Django application is production-ready, with media files hosted on AWS S3, a PostgreSQL database on Render, and static files served efficiently using WhiteNoise.
The above is the detailed content of Django application for production ready. For more information, please follow other related articles on the PHP Chinese website!