Este exemplo mostra como usar Django 4 no Vercel com Serverless Functions usando o Python Runtime.
https://django-template.vercel.app/
Nosso aplicativo Django, example
está configurado como um aplicativo instalado em vercel_app/settings.py
:
# vercel_app/settings.py
INSTALLED_APPS = [
# ...
'example',
]
Nós permitimos "*.vercel.app" subdomínios em ALLOWED_HOSTS
, além de 127.0.0.1:
# vercel_app/settings.py
ALLOWED_HOSTS = ['127.0.0.1', '.vercel.app']
O módulo wsgi
deve usar uma variável pública chamada app
para expor a aplicação WSGI:
# vercel_app/wsgi.py
app = get_wsgi_application()
A configuração WSGI_APPLICATION
correspondente é configurada para usar a variável app
do módulo vercel_app.wsgi
:
# vercel_app/settings.py
WSGI_APPLICATION = 'vercel_app.wsgi.app'
Existe uma única visualização que renderiza a hora atual em example/views.py
:
# example/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)
Esta visualização é exposta em um URL por meio de example/urls.py
:
# example/urls.py
from django.urls import path
from example.views import index
urlpatterns = [
path('', index),
]
Finalmente, ele fica acessível ao servidor Django dentro de vercel_app/urls.py
:
# vercel_app/urls.py
from django.urls import path, include
urlpatterns = [
...
path('', include('example.urls')),
]
Este exemplo usa o Web Server Gateway Interface (WSGI) com Django para permitir o tratamento de solicitações no Vercel com funções sem servidor.
python manage.py runserver
Sua aplicação Django agora está disponível em http://localhost:8000
.
Implante o exemplo usando Vercel: