user-thumbnail
@devzunky
Back-End Develop
SERIES

Django

TIL no.31 - Django - 1. Tutorial 따라하기

2019년 10월 14일

Django Documentation의 Tutorial을 직접 따라해보겠습니다. python, Django, python 가상환경인 miniconda가 설치되어 있다는 가정하에 포스팅을 진행하겠습니다. * 1. Creating Project 먼저, project의 code를 저장하고 싶은 dirctory로 이동해야 합니다. 바탕화면에 'django...

TIL no.32 - Django - 2. Tutorial 따라하기 2

2019년 10월 14일

path()의 parameter는 필수 인자 route 와 view, 선택 인자 kwargs 와 name 모두 4개의 인수가 전달 되었습니다. 이 인수들이 무엇인지 살펴보겠습니다. 1. route route 는 URL 패턴을 가진 문자열 입니다. 요청이 처리될 때, Django 는 urlpatterns 의 첫 번째 패턴부터 시작하여, 일치하는 패턴을 ...

TIL no.33 - Django - 3. Tutorial 따라하기 3

2019년 10월 14일

migrate 명령은 아직 적용되지 않은 migration을 모두 수집해 이를 실행합니다. 이 과정을 통해 모델에서의 변경 사항들과 데이터베이스의 스키마의 동기화가 이루어집니다. * 모델의 변경을 만드는 세 단계를 짚어보겠습니다. 1. (models.py 에서) 모델을 변경합니다. 2. python manage.py makemigrations을 통해 ...

TIL no.35 - Django - 5. Tutorial 따라하기 5

2019년 10월 14일

* 4. 자유로운 관리 기능을 탐색하기 이제, Question 을 등록시켰으니 Django 는 이를 알아채고 관리 인덱스 페이지에 이를 표시합니다. 스크린샷, 2019-10-14 21-12-54.png "Questions" 을 클릭하십시요. 그러면 질문들을 위한 "change list" 로 이동합니다. 이 페이지는 데이터베이스에 저장된 모든 ...

TIL no.37 - Django - Basic - 1

2019년 10월 19일

Django에 입문하면서 무작정 튜토리얼을 따라했습니다. 그리고 깨달은 것은 근본의 중요성입니다. 수학을 공부할 때 곱하기 배우기 전에 더하기를 배우고 미분을 배우기 전에 함수를 배우듯이 Django를 사용하는 방법을 배우기 전에 기본적인 개념을 정립하는 과정이 필요했습니다. 일반적인 언어를 이용해 쉬운 개념부터 하나하나 톺아보겠습니다. * ...

TIL no.38 - Django - Basic - 2

2019년 10월 19일

Django - Basic - 1에서 1. request, response가 무엇인지 2. 백엔드는 무엇으로 이루어져 있는지 3. 백엔드는 어떻게 작동하고 무슨 데이터 타입을 다루는지 알아보았습니다. 이제 Django를 직접 다뤄보면서 진행하되 기초적인 개념에 대한 설명을 첨언하면서 진행하도록 하겠습니다. Python설치, 가상환경 설정, django...

TIL no.39 - Django - Basic - 3 - url mapping

2019년 10월 19일

Django - Basic - 2에서 프로젝트( 이제 firstapp으로 넘겨온 ''url을 처리해주도록 만들었습니다. 이렇게 해주는 이유는 하나의 프로젝트 내에 여러 앱이 존재할 수 있기 때문에 각 앱에 base path를 지정하고 유지보수를 용이하게 하기 위함입니다. 비록 지금은 하나의 앱만 처리했지만 수많은 앱이 있는 프로젝트의 각 앱에 urls ...

TIL no.40 - Django - Basic - 4 - url mapping 2

2019년 10월 19일

Django - Basic - 3에서 firstapp/views.py에서 index라는 메소드를 만들고 practice/urls.py에서 rootURL로 접근하면 firstapp의 view에 선언한 index를 실행하게 했습니다. 그리고 practice/urls.py에서 rootURL 접근시 firstapp으로 넘어가게 urls.py를 수정하고 firs...

TIL no.41 - Django - Basic - 5 - template

2019년 10월 19일

지금까지 url을 입력하면 view 메소드를 사용해서 결과를 웹 페이지에서 확인했습니다. 이제 실제 html파일을 띄워보려고 합니다. Django에서 이런 html파일을 template이라고 표현합니다. * 1. template 만들고 view로 보이기 먼저 화면에 보여줄 html 파일을 생성하겠습니다. 이 html 파일은 app파일 내에 만들...

TIL no.42 - Django - Basic - 6 - template 2

2019년 10월 20일

Django - Basic - 5에서 템플릿을 만들고 context와 request 변수를 넣어 렌더링했습니다. 이번엔 템플릿 내에서 로직에 따라 조건을 처리해 결과를 보여주는 방법에 대해 알아보겠습니다. 1. anchor tag url 설정 context로 받은 numbers안에 있는 각 요소들을 li에 담고 있습니다. 이제 runserve...

TIL no.43 - Django - Basic - 7 - static file

2019년 10월 20일

Django에서 static file을 다뤄보겠습니다. css,js,img 같은 것들을 static file이라고 합니다. * 1. static file 사용 준비 그럼 img 파일을 firstapp/static/firstpp에 넣어주겠습니다. namespacing을 해주는 이유는 같은 이름의 파일이 다른 앱에 있을 때 일어나는 충돌을 방지하기 위함...

TIL no.45 - Django - Basic - 9 - Model Overview

2019년 10월 20일

여태까지 urls.py, views.py 그리고 template들만 가지고 공부를 했습니다. 이제 models.py를 다뤄보려고 합니다. 그전에 Model이 무엇인지 알 필요가 있습니다. 1. Model이란? 모델은 정보들을 저장하기 위해 사용하는 개념입니다. 우리가 만들 웹 서비스에서 사용할 정보의 특성에 대해 정의한 것을 의미합니다. 사이트...

TIL no.46 - Django - Basic - 10 - Model

2019년 10월 20일

이제 Model을 구현해보겠습니다. 그전에 Django - Basic - 8까지 진행한 firstapp과 구분하기 위해 second라는 앱을 만들어 주겠습니다. makemigrations는 migrate할 준비를 합니다. git에서 add와 비슷합니다. migrate는 실제 DB로 모델 클래스가 DB에 맞게 번역되어 DB에 들어갑니다. * 프로젝트에 ...

TIL no.47 - Django - Basic - 11 - MTV pattern, Http Flow

2019년 10월 20일

1. MTV pattern 웹 프로그램 개발 시 일반적으로 언급되는 패턴은 MVC(model - view - controller) 패턴입니다. M(model)은 데이터, V(view) 는 사용자 인터페이스, C(controller)는 데이터를 처리하는 로직. 이렇게 3가지 개념으로 묶어서 구현합니다. Django에서는 MTV(model-template...

TIL no.48 - Django - Basic - 12 - Data 생성

2019년 10월 20일

Django - Basic - 10에서 Model을 정의해줬습니다. 이제 그 Model을 가지고 실제로 DB에 data들을 저장하고 읽어보겠습니다. 1. Database에 data 저장하기 Django Shell을 실행합니다. 이제 runserver를 해서 결과를 보겠습니다. 스크린샷, 2019-10-20 20-28-58.png * 구현한 화...

TIL no.49 - Django - Basic - 13 - form

2019년 10월 20일

Django - Basic - 8에서 form에 관해 잠시 다뤘습니다. 어떤 역할을 하는지만 짚고 넘어갔으니 form에 관해 좀 더 알아보도록 하겠습니다. Form은 '사용자의 입력을 받기 위한 것'으로 생각하면 됩니다. 우리가 자주 보는 로그인 화면이나, 글쓰기 화면에 데이터를 입력 받는 입력 칸들과 버튼으로 이루어져 있습니다. Html form의 ...

TIL no.50 - Django - Basic - 14 - Django form

2019년 10월 21일

Django Form을 사용해 게시물을 입력하는 화면을 구현합니다. 사용자로 부터 어떤 정보를 입력받을지 생각하면서 코드를 작성하는 것이 좋습니다. 1. 기본 폼 생성하기 second 에 간단한 폼을 생성해보겠습니다. runserver를 한 뒤 http://127.0.0.1:8000/second/create/ 로 접속하면 만들어준 form을 볼...

TIL no.51 - Django - Basic - 15 - Sending form data

2019년 10월 21일

Django - Basic - 14에서 form을 생성하고 화면에 띄워주기까지 완료했습니다. 이제 사용자가 form에 입력한 데이터를 전송해서 다른 화면에 보여주는 방법을 포스팅하겠습니다. * 1. Overview 1. create페이지에서 유저로부터 데이터를 받습니다. 2. 입력받은 데이터를 어떻게 사용할지 views.py에서 결정합니다. 3. ...

TIL no.52 - Django - Basic - 16 - Model Form

2019년 10월 21일

기존 모델 클래스의 필드를 입력받는 폼이 있습니다. 이를 Model Form이라고 합니다. 그냥 form 만으로도 데이터를 받아서 Post에 레코드를 추가할 수 있지만, 이렇게 할 경우 Post에 속성이 추가되면 form도 그 때 그 때 수정해 주어야 하고 form으로 받은 데이터를 다시 꺼내서 모델 클래스의 인스턴스에 넣어주어야 하는 번거로움이 있습니다...

TIL no.53 - Django - Basic - 17 - Model Form으로 데이터 저장하기

2019년 10월 21일

기존에 작성된 views.py의 create 메소드에 GET으로 요청이 들어왔을 때와 form을 통해 POST로 요청이 들어왔을 때를 구분해서 처리하도록 하겠습니다. 이렇게 처리해주면 url mapping을 간결하게 처리할 수 있습니다. * 1. Model Form으로 데이터 저장하기 create에서 유저로부터 form data를 입력받습니다. ...

TIL no.54 - Django - Basic - 18 - ORM

2019년 10월 21일

1. ORM(Object-relational mapping) ORM은 객체지향 언어에서 서로 다른 시스템 간의 데이터 형식 호환을 위해 데이터를 변환하고 맵핑(연결)해주는 기술을 의미합니다. Object는 OOP(Object oriented Programming)에서의 Object, 즉 클래스 형태를 의미합니다. 서로 교류하는 시스템 간에 사용하는 언...

TIL no.55 - Django - Example - 1

2019년 10월 22일

지금까지 공부한 내용을 베이스로 Model을 만들고 View 로직을 구현하고 url을 연결하는 예제를 해보겠습니다. * example이라는 가상환경을 만들고 django를 설치한 뒤 example이라는 프로젝트를 만들었다는 가정하에 시작하겠습니다. * request를 json data로 받아 데이터베이스에 존재하는 유저인지 확인하는 End Point를 만들...

TIL no.56 - Django - Example - 2

2019년 10월 23일

여태까지는 제가 제 컴퓨터 안에서 서버를 돌리고 혼자 테스트를 했는데 이제 같은 와이파이를 사용하는 다른 호스트도 Request를 보내고 Response를 받을 수 있도록 해보겠습니다. 다음은 제가 구현한 End Point입니다. endpoint라는 프로젝트에 user와 comment라는 앱이 있고 model과 view구현은 다음과 같습니다. 스크린샷...

TIL no.65 - Django - Relationships

2019년 10월 29일

Model 설계에 있어서 Relationship은 정말 중요합니다. 관계를 설정해주는 방법은 3가지가 있습니다. * 1. ForeignKey ForeignKey는 one to many 관계를 의미합니다. 게시물과 댓글의 경우를 떠올리면 됩니다. 한 게시물에 여러 댓글이 달릴 수 있습니다. 옵션을 걸어준 이유는 tag를 하나도 달지 않는 경우도...

TIL no.66 - Django - Basic - 19 - 데이터 조회 / 수정

2019년 10월 29일

Django의 간단한 Model을 구현한 뒤에 DB에 데이터를 저장하고 저장한 데이터를 다루는 방법에 대해 포스팅하겠습니다. 1. Model 구현

TIL no.67 - Django - MySQL connector

2019년 10월 30일

Django에서 MySQL Connector 사용법에 대해 포스팅하겠습니다. mysql 설치와 mysql-connector-python가 완료된 상태라고 가정하겠습니다. * mysql을 실행한 뒤, 다음 2가지를 생성합니다. 1. Database 2. User 먼저 mysql에서 Database를 생성해줍니다. 위와 같이 mysql과 연결시켜주면 이...

TIL no.74 - Django - SMS 보내기

2019년 11월 6일

Naver Cloud Platform의 SENS 서비스를 이용해서 SMS를 보내려고 합니다. 일단, Naver Cloud Platform에 회원가입, 로그인 후 콘솔에서 프로젝트를 생성하고 설명서를 참고해서 발신번호 등록과 API 인증키를 생성하는 등의 과정을 진행해야 합니다. * 저의 경우, 다음과 같이 회원가입 페이지에서 인증번호를 보내주는 기능을 구...

TIL no.77 - Django - Kakao Social Login (Front End)

2019년 11월 13일

카카오 소셜 로그인을 구현해보려합니다. Kakao Developres를 참고했습니다. 먼저, 다음 그림을 참고해서 개략적으로 어떤 흐름으로 진행되는지 이해하고 있는 것이 좋습니다. sociallogin.png 이번 포스팅에서는 4번 전까지 일어나는 통신에 대해 다뤄보겠습니다. * 1. Preparation kakao REST API 사용법을 참고해...

TIL no.81 - Django - To Reduce Query

2019년 11월 18일

DB를 자주 호출한다면 즉, Query를 많이 한다면 통신은 느려질 수밖에 없습니다. 그렇기 때문에, 줄일 수 있는 Query는 줄이는게 좋습니다. 그리고 Django에는 record(혹은 instance)간의 관계를 미리 읽어들여서 Query를 줄이는 ORM이 존재합니다. 1. select_related(*fields) 다음과 같은 모델을 예로...