Skip to content

Django Integration

This guide covers using FastOpenAPI with Django, a high-performance web framework.

FastOpenAPI's DjangoRouter supports Django, via Django's urls interface.

Setup

Install FastOpenAPI:

pip install fastopenapi

or

pip install fastopenapi[django]

Hello World

from django.conf import settings
from django.core.management import call_command
from django.core.wsgi import get_wsgi_application
from django.urls import path
from pydantic import BaseModel

from fastopenapi.routers import DjangoRouter

settings.configure(DEBUG=True, SECRET_KEY="__CHANGEME__", ROOT_URLCONF=__name__)
application = get_wsgi_application()

router = DjangoRouter(app=True)


class HelloResponse(BaseModel):
    message: str


@router.get("/hello", tags=["Hello"], status_code=200, response_model=HelloResponse)
def hello(name: str):
    """Say hello from django"""
    return HelloResponse(message=f"Hello, {name}! It's Django!")


urlpatterns = [path("", router.urls)]

if __name__ == "__main__":
    call_command("runserver")

Project Example

See example for this framework in the examples/django/ directory of the repository.