Library for adding progressive web app functionality in your django project.
This Django library adds progressive web app functionality in your django project.
When you open your site from your mobile browser, will prompt you to add the site to your home screen as an application.
pip install django-progressive
Add django-progressive django_pwa
to your installed apps INSTALLED_APPS
in django settings.py
INSTALLED_APPS = [
'...',
'django_pwa'
'...'
]
Define STATICFILES_DIRS
In settings.py
using the prefix PWA_ and the keys from the web app manifest
all in capital you can configure the pwa manifest.
PWA_NAME = 'test app'
PWA_SHORT_NAME = 'test_app'
PWA_ICONS = [
{
"src": "/static/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png"
}, {
"src": "/static/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png"
}, {
"src": "/static/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png"
}, {
"src": "/static/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
}, {
"src": "/static/icons/icon-256x256.png",
"sizes": "256x256",
"type": "image/png"
}, {
"src": "/static/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
You can change the default worker location with
PWA_WORKER_LOCATION
.
PWA_WORKER_LOCATION = join('static', 'django_pwa_demo', 'service-worker.js')
Add django_pwa
urls to your urls.py
from django.urls import path, include
urlpatterns = [
'...',
path('', include('django_pwa.urls')),
'...'
]
You can add {% load pwa_extras %}
to use {% load_manifest %}
template tag to load the manifest.json
and {% load_worker %}
to load the worker-app.js
.
{% load pwa_extras %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PWA Test</title>
{% load_manifest %}
</head>
<body>
<h1>Hello world!!!</h1>
{% load_worker %}
</body>
</html>
- Progressive Web Apps
- Wikipedia
- WPA Manifest