Skip to content

Next.js & Django Notes

Next.js & Django Notes

Backend Framework : Django & Django Ninja

Installation

pip install Django django-ninja

Creating a Next js app

npx create-next-app@latest 

Creating an api endpoint with django ninja

from ninja import NinjaAPI

api = NinjaAPI()

@api.get("/hello")
def hello(request):
    print(request)
    return "hello world"

Wiring up the urls.

from .api import api 


urlpatterns = [
    # other url patterns 
    path("api/", api.urls)
]

Creating a schema

from ninja import Schema 

class UserSchema(Schema):
    username: str
    is_authenticated: bool

Setting Response object type in ninja

@api.get("/me", response = UserSchema)
def me(request):
return request.user

User Auth with Django Ninja JWT

from ninja_jwt.controller import NinjaJWTDefaultController
from nina_extra import NinjaExtraAPI
from ninja_jwt.authentication import JWTAuth



api = NinjaExtraAPI
api.register_controllers(NinjaJWTDefaultController)


@api.get("/me", response = UserSchema, auth = JWTAuth())
def me(request):
    return request.user