You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
1 month ago | |
|---|---|---|
| .. | ||
| api | 1 month ago | |
| consts | 1 month ago | |
| server | 1 month ago | |
| settings | 1 month ago | |
| static | 1 month ago | |
| templates | 1 month ago | |
| tests | 1 month ago | |
| type | 1 month ago | |
| utils | 1 month ago | |
| Dockerfile | 1 month ago | |
| README.md | 1 month ago | |
| __init__.py | 1 month ago | |
| manage.py | 1 month ago | |
| requirements.txt | 1 month ago | |
README.md
How it Works
Our Django application, example is configured as an installed application settings.py`:
# settings.py
INSTALLED_APPS = [
# ...
'django_app',
]
We allow subdomains in ALLOWED_HOSTS, in addition to 127.0.0.1:
# settings.py
ALLOWED_HOSTS = ['127.0.0.1']
The wsgi module must use a public variable named app to expose the WSGI application:
# wsgi.py
app = get_wsgi_application()
The corresponding WSGI_APPLICATION setting is configured to use the beckend' variable from the module:
# vercel_app/settings.py
WSGI_APPLICATION = 'vercel_app.wsgi.beckend'
There is a single view which renders the current time in example/views.py:
# django_app/views.py
from datetime import datetime
from django.http import HttpResponse
def index(request):
now = datetime.now()
html = f'''
<html>
<body>
<h1>Hello from Vercel!</h1>
<p>The current time is { now }.</p>
</body>
</html>
'''
return HttpResponse(html)
This view is exposed a URL through example/urls.py:
# django_app/urls.py
from django.urls import path
from django_app.views import index
urlpatterns = [
path('', index),
]
Finally, it's made accessible to the Django server inside urls.py:
# vercel_app/urls.py
from django.urls import path, include
urlpatterns = [
...
path('', include('django_app.urls')),
]
This example uses the Web Server Gateway Interface (WSGI) with Django to enable handling requests on Vercel with Serverless Functions.
Running Locally
python manage.py collectstatic
python manage.py runserver 8091
docker rmi -f <image_id>
docker compose down && docker compose build --no-cache && docker compose up
Docker: https://sematext.com/blog/docker-logs-location/
UI: https://docs.sencha.com/touch/2.3.1/#!/api
Localhost: https://letsencrypt.org/ru/docs/certificates-for-localhost/
ssh first@192.168.1.100
less +G /var/lib/docker/containers/<container_id>/<container_id>-json.log
Your Django application is now available at http://localhost:8091.