728x90

Back-End 7

[DRF] Django REST Framework란?

기본적으로 Django에 대해서만 다뤄봤고 할 줄 알았다. 현장실습생으로 업무를 진행하면서 django REST framework에 대해서 처음 들었다. 나는 그냥 백엔드를 구축하기 위해서는 Django만 알아도 된다고 생각했는데, 그게 아니었다. ▶Django REST Framework란? - Django를 기반으로 REST API를 만들기 위한 라이브러리이다. - Django는 자체적은 웹 템플릿에 데이터를 전달한다. - DRF는 다양한 플랫폼의 클라이언트에게 데이터를 전달한다. 순수 Django는 HTML에 응답하고 풀스택 개발이 목적이다. 하지만 JSON에 응답하는 DRF는 백엔드 API 서버 개발을 위한 목적으로 사용된다. ▶DRF 설치 그냥 django에 몇 가지만 추가해 주면 된다. 먼저 명..

Back-End 2023.07.20

[Django] 마이그레이션 초기화

장고로 하나둘씩 model을 만들고 있으니, 생각보다 수정할 일이 많았다. python manage.py makemigrations와 python manage.py migrate 이 두 가지로 해결되는 경우도 있었지만, migrate 하는 경우에 오류가 날 때도 많았다. 이럴 때는 마이그레이션을 초기화해야 한다고 한다. 예전엔 구글링 해서 하나하나 했겠지만, 요즘은 ChatGPT에서 물어보면 바로 알려준다.매번 물어볼 수는 없으니, 과정들을 기록으로 남기고자 한다. ▶데이터베이스까지 전부 초기화 1. 프로젝트 안에 모든 마이그레이션 파일을 삭제 migrations 폴더 전체를 삭제하면 안 된다. 폴더 안에 __init__.py 파일을 제외하고 나머지를 다 삭제하면 된다. 2. 현재 데이터베이스 드랍 3...

Back-End 2023.07.18

[Django] 모델(Model), 커스텀 모델

▶모델(Model) 모델링 저장하고자 하는 데이터를 모델로 정의하는 것이다. 게시물 같은 경우에는 사진, 내용, 작성자, 작성일 등이 하나로 모여 게시물이 된다. 이를 모델링이라고 한다. 장고 모델 뷰(view) 함수에서 데이터 베이스에 어떤 작업을 요청할 때는 SQL 구문이 필요하다. 하지만 장고에는 내장 ORM이 있어서, SQL을 직접 작성하지 않아도 데이터베이스로 접근이 가능하다. ▶모델 정의 인스타그램처럼 게시물을 작성할 수 있게 모델을 구현해 보겠다. 기본적으로 프로젝트를 생성하듯이 프로젝트를 하나 생성해 준다. 그다음에 원하는 앱을 생성해 주면 된다. 게시물을 만들 예정이라서 posts로 만들어주었다. (settings.py에 등록해주어야 한다.) django-admin startapp pos..

Back-End 2023.05.07

[Django] MTV 디자인 패턴 (Model, Template, View)

Spring을 공부할 때는 MVC(Model - View - Controller) 디자인 패턴을 사용한다고 배웠다. 하지만 장고는 이런 개념을 MTV 패턴이라고 부른다. ▶MTV 디자인 패턴 Model 데이터베이스에 저장되는 데이터를 의미한다. 데이터 관리, 데이터베이스와 연결 및 실행이 주된 역할이다. 장고는 SQL을 몰라도 DB 작업을 가능하게 해주는 ORM을 제공한다. ORM (Object-Relational Mapping) SQL이라는 언어 대신 데이터베이스를 쉽게 연결해 주는 방법이다. models.py 파일에 class를 만들고 수정하면서 작업한다. Template 사용자에게 보이는 데이터를 출력하는 역할을 한다. html과 같은 페이지이다. urls.py라는 url 패턴에 따라 특정 함수를 ..

Back-End 2023.05.06

[Django] URLs와 Views (App 생성/등록하기)

▶App 생성 사이트에서 어디로 이동하면 '/' 뒤에 다른 뭔가가 붙는다. 각각 하나가 App이라고 생각해도 될 거 같다. (내 추측) App 생성 django-admin startapp 프로젝트를 생성한 곳에서 manage.py가 있는 위치로 이동한다. 그다음에 위 코드를 입력하면 app이 생성된다. App 패키지 구성 models.py : entity를 위한 파일 views.py : controller 역할을 하는 파일 Project 폴더 생성 패키기 구성 settings.py : 환경 설정과 관련된 파일 (앱 등록을 위해 쓰인다.) urls.py : request가 들어오는 url과 view를 연결해 주는 파일 ▶App 등록 해당 코드를 이용해 app을 만들면 앱을 등록해야 한다. 처음 생성한 pr..

Back-End 2023.05.02

[Django] SECRET_KEY 암호화 (github commit시 주의)

처음에 만들었던 project를 아무 생각 없이 github에 올렸다. 그냥 서버 여는 것만 해서 secret_key가 있다고 생각은 못했는데, Django에서 secret_key가 노출됐다고 메일이 왔다. secret_key가 노출되면 나중에 AWS를 이용해 실제 서버를 열고 배포했을 때, 잘못하면 요금 폭탄을 맞을 수 있다고 한다. 그래서 암호화하는 방법을 알아봤다. ▶secret_key값 분리하기 1. secrets.json setting.py에 있는 secret_key값을 secret.json에 빼주기로 했다. manage.py와 동일한 위치에 secret.json파일을 생성해 주고 아래 코드를 입력한다. { "SECRET_KEY": "" } 2. setting.py 그리고 setting.py도 ..

Back-End 2023.05.02

[Django] VScode 장고 시작 (가상환경 venv)

파이썬 웹프레임워크 Django를 써보려고 한다. 내가 공부하면서 느낀 모든 과정을 쓰고 필요할 때 다시 보고자 한다. 항상 VScode를 이용해서 python 프로젝트를 진행해서, 이번에도 vsc로 진행했다. ▶Visual Studio Code에서 장고 실행 일단 장고를 하는 사람이면 vsc에 python이 설치되어 있을 것이다. 나 또한 설치가 되어있고, 그렇다고 가정을 하고 작성을 해보겠다. 가상환경 생성 1. 프로젝트를 실행할 폴더를 만들고, 해당 폴더를 vsc에서 열어준다. 2. 터미널을 실행해 해당 코드를 입력해 준다. python -m venv djangovenv 해당 코드를 터미널에 입력하면 아래와 같이 폴더와 파일이 생성된다. 3. F1 → Select Interpreter 검색 → Py..

Back-End 2023.05.02
728x90