https://vicapor.tistory.com/108

 

Django Ninja Tutorial 3

https://vicapor.tistory.com/107 Django Ninja Tutorial 2 https://vicapor.tistory.com/7 Django Ninja Tutorial 1 Django Ninja 공식 페이지 : https://django-ninja.rest-framework.com/ 장고 닌자는 FAST API..

vicapor.tistory.com

3편에 이은 4편이다. 이번에는 파일을 업로드 하는 api를 구현해보려고 한다. 

 

 

1. Template 생성

 

1) url

djninja/urls.py

from django.contrib import admin
from django.urls import path
from tracks.api import api
from tracks.views import index

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', api.urls),
    path("index/", index, name='index')
]

 

 

2) view

tracks/views.py

from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request, 'index.html', {})

 

3) template

tracks/templates/index.html

<form method="post" action="{% url 'api-1.0.0:upload' %}" enctype='multipart/form-data'>
    <input type="file" name="file">
    <button type="submit">Submit</button>
</form>

 

 

2. File upload 구현

 

tracks/api.py

@api.post("/upload", url_name='upload')
def upload(request, file: UploadedFile = File(...)):
    data = file.read().decode()
    return {
        'name': file.name,
        'data': data,
    }

 

 

추가)

Django Ninja는 기본적으로 Swagger 기능을 제공해주는데

 

http://127.0.0.1:8000/api/docs 로 접속하면 확인할 수 있다. 

'Back-End > Django-ninja' 카테고리의 다른 글

Django Ninja Render  (0) 2021.11.30
Django Ninja Tutorial 5  (0) 2021.11.30
Django Ninja Tutorial 3  (0) 2021.11.29
Django Ninja Tutorial 2  (0) 2021.11.29
Django Ninja Tutorial 1  (0) 2021.07.09

+ Recent posts