https://vicapor.tistory.com/108
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 |