mirror of
https://github.com/frappe/gunicorn.git
synced 2026-07-01 18:21:30 +08:00
1.8 KiB
1.8 KiB
Quickstart
Get a Python web application running with Gunicorn in 5 minutes.
Install
pip install gunicorn
Create an Application
Create app.py:
=== "Flask"
```python
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, World!"
```
=== "FastAPI"
```python
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def hello():
return {"message": "Hello, World!"}
```
=== "Django"
Django projects already have a WSGI application at `myproject/wsgi.py`.
No additional code is needed.
=== "Plain WSGI"
```python
def app(environ, start_response):
data = b"Hello, World!"
start_response("200 OK", [
("Content-Type", "text/plain"),
("Content-Length", str(len(data)))
])
return [data]
```
Run
gunicorn app:app
For Django:
gunicorn myproject.wsgi
For FastAPI (ASGI):
gunicorn app:app --worker-class asgi
Add Workers
Use multiple workers to handle concurrent requests:
gunicorn app:app --workers 4
A good starting point is 2 * CPU_CORES + 1 workers.
Bind to a Port
By default Gunicorn binds to 127.0.0.1:8000. Change it with:
gunicorn app:app --bind 0.0.0.0:8080
Configuration File
Create gunicorn.conf.py for reusable settings:
bind = "0.0.0.0:8000"
workers = 4
accesslog = "-"
Then run:
gunicorn app:app
Gunicorn automatically loads gunicorn.conf.py from the current directory.