카테고리 없음

[Django] API 연결만하기(가상환경셋팅부터_)

황성안 2021. 4. 30. 18:11
728x90
반응형

가상환경 만들기

python -m venv venv
source venv/Scripts/activate

우리가 필요한것은

django

django_seed (초기 데이터를 )

djangorestframework

가필요하다

pip install django django_seed djangorestframework 
python manage.py migrate

 

django_seed 는 setting.py 에서 수정이 필요함

INSTALLED_APPS = [
    'django_seed',

]
python manage.py seed articles --number=100

데이터 100개가 만들어졌는지 데이터베이스를 열어보겠습니다.

 

이후 config > urls.py 로 ㄱㄱ

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/', include('articles.urls')),
]

 

articles 에서 urls.py 를 만들어주고 코딩!

from django.urls import path, include
from . import views
urlpatterns = [
    #모든 게시글을 반환하는 URL 주소

    # GET http://localhost:8000/api/v1/articles/

    # (동사) 행위는 HTTP method로 표현

    # (명사) 자원은 URL로 표현

    path('articles/', views.article_list),
]

 

views.py에서 article_list 만들기

from django.shortcuts import render
from django.http.response import JsonResponse, HttpResponse
from django.core import serializers
from .models import Article

# Create your views here.
def article_list(request):
    articles = Article.objects.all() #QuerySet
    data = serializers.serialize('json', articles) # 내가 json 으로 articles를 변환하겠다.
    # articles_json = []

    # for article in articles:
    #     json = {
    #         'id':article.pk,
    #         'title':article.title,
    #         'content': article.content,
    #         'created_at':article.created_at,
    #         'updated_at':article.updated_at,

    #     }
    #     articles_json.append(json)

    return HttpResponse(data, content_type='application/json')

https://docs.djangoproject.com/en/3.2/ref/request-response/#django.http.HttpRequest https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types

확인해보기

 

728x90
반응형