1 가상 환경 구축하기

<aside>
💡 터미널에서 `python -m venv venv` 명령어

</aside> 

venv는 virtual environment의 약자

2 가상 환경 활성화 하기

 mac / linux : source venv/bin/activate

3강,4강 내용

📕 **API (Application Programming Interface)**

⇒ 쉽게 말해 어플리케이션과 프로그래밍적으로 소통하는 방법입니다.

이제 장고로 JSON형식을 주고받는 서버를 만들고
소통방식은 RESTful api를 사용해서 주고받는 형식을 만든다.

REST는 Representational State Transfer의 약자

JSON(JavaScript Object Notation)

  • JS 표기법을 따른 일종의 데이터를 담는 형식입니다.
    • XML, CSV, YAML 등의 형식도 있지만 JSON을 일반적으로 사용해요!
  • 사람이 읽기 쉽고 프로그래밍으로 파싱(분석)하기 쉬습니다.
  • 파이썬의 dict처럼 key-value 형식의 구조

그냥 따라하니까 이게 뭐하고 있는지를 모르네

새로운 프로젝트 생성

api_pjt 라는 이름의 프로젝트를 생성해 주세요.

django-admin startproject api_pjt

articles 앱을 생성하고 기본적인 url 구조를 만들어주세요.

ls로 현위치가 manage.py에 있는지 확인 아니면 cd api_pjt 해서 이동
python manage.py startapp articles
setting.py에서 "앱명",쓰고 앱등록 "articles",

/api/v1/articles/로 들어오면 articles 앱의 urls로 연결해 주세요.

path("/api/v1/articles/",include("articles.urls"))

: /api/v1/articles/로 들어오면 articles.urls로 가라는 명령어
urlpattern 상단에 include 임포트
django.urls import path옆에 ,include 쓰기

articles디렉토리 하위 모듈 urls.py생성
url.py에서 최상단에 from django.urls import path쓰기( 기본설정)
urlpattern = [] 쓰기

  • articles 앱의 models.py를 작성해 주세요.
    • Artcile 모델 클래스를 작성하고 아래 필드를 포함해 주세요.
      • title content created_at updated_at

article 하위 모듈 models.py에서

class Article(models.Model):
    title = models.CharField(max_length=120)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateField(auto_now=True)

Article 클래스는 데이터베이스에서 "Article"이라는 테이블을 나타낸다.
models.Model는 장고에서 제공하는 기본 모델 클래스로 상속을 받음으로써 장고의 ORM기능을 활용할 수 있게 되고 테이블을 crud를 할수 있다.
created_at: 객체가 처음 생성된 날짜와 시간을 자동으로 기록.
updated_at: 객체가 수정될 때마다 마지막 수정 날짜를 자동으로 기록.

python manage.py makemigrations
으로 모델생성하는 명령어, 모델의 변경 사항을 데이터베이스에 반영할때도 쓴다.
python manage.py migrate


Model클래스에 데이터가 아무것도 없어서 넣어줘야 한다
랜덤으로 자동으로 형식에 맞게 넣을수 있는 django seed가 있다.
:테스트 데이터를 생성해준다.

pip install django-seed
설치 후엔 반드시
pip freeze > requirements.txt
도 쓴다.

setting.py에서
"django_seed", 등록

보통의 위치는


python manage.py seed articles --number=30
30개를 seeding하는 명령어

만들어진 테이블 데이터를 조회해서 .html방식이 아닌
JSON방식으로 주는 것을 해보자

앱하위모듈 url.py에서
path("json-01/", views.json_01, "name=json_01"),

views.py에서

def json_01(request):
    articles = Article.onjects.all()
    일단데이터 가지고 옴
    json_articles = []
    
    for article in articles:
        json_articles.append(
            {
                "title":article.title,
                "content":article.content,
                "created_at":article.created_at,
                "updeated_at":article.updated_at,
                
            }
    return JsonResponse(json_articles, safe=False) 

상단에 from django.http import JsonResponse쓰고
JSON 형식으로 return하는게 필요하고,
장고가 제공하는 JsonResponse를 django.http에서 import가져와서 사용한다.

safe=False는 json_articles의 타입이 딕셔너리면 생략가능하고
아니라면 지금은 리스트이므로 safe=False 하면 내부적으로 처리해서 JsonResponse 돌려준다

업로드중..

<단순암기할 것들>

.py 로 끝나는 것들은 다 모듈이다.

url -> views.py 가 템플릿으로 context를 모델에서 가져와서 템플릿으로 넘겨줘야 한다.
1. 가져온다 모델에서
form .models import ____

뷰즈를 유알엘로 임포트
from . import views(뷰즈도모듈, 모듈을임포트해서 사용)

url pattern=[
path('경로url주소/',views. , .html),
]
쿼리셋(QuerySet):테이블에서 특정 조건에 따라 데이터를 조회한 결과, 데이터베이스로부터 데이터를 조회하는 데 사용되는 객체

profile
참 쉽죠? #개발계의 밥아저씨를 꿈꿉니다⋆⁺₊⋆ ☾⋆⁺₊⋆

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN