Reputation: 85
Can anyone help me in understanding what is the use of wsgi.py file?
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings.local")
application = get_wsgi_application()
Upvotes: 5
Views: 17558
Reputation: 571
The WSGI.py and ASGI.py are there to define the application entry point according the the Python specs depending on whether your are running a synchronous server based on WSGI or asynchronous server based on ASGI.
In my experience, if you move/rename the files, even in development, without updating the settings.py file with the new location/name you will receive an error indicating the file cannot be found.
For example, here is the error message when attempting to run the local built in development server after I removed the WSGI.py file, proving that the files are required for development.
Here is the pertinent part of the error message for an project named 'main':
get_internal_wsgi_application raise ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: WSGI application 'main.wsgi.application' could not be loaded; Error importing module.
Upvotes: 0
Reputation: 3078
The main use of deploying with WSGI is the application callable which the application server uses to communicate with your code. It’s commonly provided as an object named application in a Python module accessible to the server.
Upvotes: 2
Reputation: 422
This file is basically used for deployment only as is not used in development, except when you are using docker.
It is used as an interface between application server to connect with django or any python framework which implements wsgi specified by python community, taking about usage mostly you will see it is used with gunicorn
Upvotes: 7