Django 반환 JSON

Salman Mehmood 2024년2월15일
Django 반환 JSON

이 토론에서는 JSON 형식에 대한 간략한 소개를 살펴보고 Django의 JsonResponse 클래스를 사용하여 데이터를 JSON 형식으로 변환합니다.

Django에서 JsonResponse 클래스를 사용하여 데이터를 JSON 형식으로 반환

JSON은 JavaScript 객체 표기법이라고도 하며 단순히 데이터 표현입니다. 거의 모든 단일 API에 대해 인터넷에서 널리 사용됩니다.

JSON은 클라이언트 사이트에서 데이터를 보내기에 매우 가볍습니다. 또한 JavaScript와 매우 잘 통합됩니다.

JSON은 JavaScript의 상위 집합일 뿐이므로 JavaScript와 잘 통합됩니다. 거의 모든 주요 언어에는 JSON 문자열을 개체 또는 클래스로 구문 분석하는 라이브러리 또는 내장 기능이 있습니다.

JSON 형식으로 데이터를 전달하는 것은 Django에서 매우 쉽습니다. 어떻게 작동하는지 봅시다.

Profile 모델을 생성하여 시작하겠습니다. 이 모델에서 이름, 이메일바이오 필드 3개를 생성합니다. 이러한 필드는 max_length가 1000인 CharField입니다.

class Profile(models.Model):
    name = models.CharField(max_length=1000)
    email = models.CharField(max_length=1000)
    bio = models.CharField(max_length=1000)

admin.py 파일에 Profile 모델을 등록해야 합니다.

from .models import Book, Profile

admin.site.register(Book)
admin.site.register(Profile)

새 URL을 만들어야 하므로 이 URL에 도달할 때마다 views.py 파일에서 json 함수를 호출합니다.

urlpatterns = [
    path("admin/", admin.site.urls),
    path("json", views.json, name="json"),
]

이제 json이라는 새 함수를 만들어야 합니다. 먼저 JsonResponse 및 기타 필수 모듈을 가져와야 합니다.

from .models import Profile
from django.http import JsonResponse

json 함수에서 objects.values()를 사용하여 Profile 개체에서 값을 가져와 목록 데이터 유형으로 변환합니다.

data 변수를 생성한 후 JSON 응답으로 데이터를 반환해야 합니다. JsonResponse 클래스에서 data 변수를 전달한 후 safe 인수를 전달하고 False와 동일하게 설정해야 합니다.

def json(request):
    data = list(Profile.objects.values())
    return JsonResponse(data, safe=False)

모델을 생성하려면 마이그레이션을 수행해야 합니다. 다음 명령을 사용하면 관리자 패널에서 모델을 볼 수 있습니다.

python manage.py makemigrations
python manage.py migrate

이제 모든 것이 잘 작동할 것입니다. 이 명령을 사용하여 서버를 실행하고 무슨 일이 일어나는지 확인하십시오.

python manage.py runserver

브라우저를 실행하고 http://127.0.0.1:8000/admin 주소를 통해 관리자 패널로 이동합니다. 모델을 처음 여는 경우 오른쪽 상단 버튼을 사용하여 모델을 추가해야 합니다.

Django Return JSON 출력

필드를 채운 후 이 객체를 저장하고 http://127.0.0.1:8000/json을 통해 JSON 페이지로 이동해야 합니다.

[
    {
    id: 1,
    name: "jeams parker",
    email: "exampl@example.com",
    bio: "This is the example bio"
    }
]

이제 JSON 형식의 데이터에 액세스할 수 있습니다.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

관련 문장 - Django JSON