Django Documentation의 Tutorial을 직접 따라해보겠습니다. python, Django, python 가상환경인 miniconda가 설치되어 있다는 가정하에 포스팅을 진행하겠습니다. 1. Creating Project 먼저, project의 code를 저장하고 싶은 dirctory로 이동해야 합니다. 바탕화면에 'djangotutor...
에서 를 통해 프로젝트를 생성했고 를 통해 개발서버를 시작했습니다. 이제, 설문조사 앱을 만드는 과정의 Tutorial을 따라해보겠습니다. 1. Creating the Polls app Django에서 작성하는 각 어플리케이션은 Python Package로 구성되어 있으며 이 Python Package는 특정 convention을 따릅니다. 앱을 생성...
에서 설문조사 앱을 만들기 위해 으로 라는 directory를 생성했습니다. 그리고 view를 만들기 위해 파일에 코드를 작성해주었습니다. 그리고 view를 호출하기 위해 라는 URLconf를 생성했습니다. 그리고 root URLconf에서 polls.urls 모듈을 바라보게 설정하기 위해 함수를 이용했습니다. 마지막으로 함수의 인자들에 대해 살펴...
에서 을 통해 데이터베이스 테이블을 만들었습니다. 파일을 수정하여 Question 과 Choice 라는 두개의 모델을 만들었습니다. 그리고 현재 프로젝트에게 polls 앱이 설치되어 있다는 것을 알리기 위해mysite/mysite/settings.py 파일을 편집하여 INSTALLED_APPS 설정에 'polls.apps.PollsConfig'를 추...
에서 API를 다뤘습니다. 을 통해 Django에서 동작하는 명령을 Python 쉘에서 시험해봤습니다. 1. 관리자 생성하기 관리 사이트에 로그인할 수 있는 사용자를 생성해보겠습니다. Username과 e-mail 그리고 비밀번호를 설정합니다. 2. 개발 서버 시작 Django 관리자 사이트는 기본으로 활성화되어 있습니다. 개발 서버를 켜고, 탐험...
Django에 입문하면서 무작정 튜토리얼을 따라했습니다. 그리고 깨달은 것은 근본의 중요성입니다. 수학을 공부할 때 곱하기 배우기 전에 더하기를 배우고 미분을 배우기 전에 함수를 배우듯이 Django를 사용하는 방법을 배우기 전에 기본적인 개념을 정립하는 과정이 필요했습니다. 일반적인 언어를 이용해 쉬운 개념부터 하나하나 톺아보겠습니다. 1. 서버와...
Django - Basic - 1에서 request, response가 무엇인지 백엔드는 무엇으로 이루어져 있는지 백엔드는 어떻게 작동하고 무슨 데이터 타입을 다루는지 알아보았습니다. 이제 Django를 직접 다뤄보면서 진행하되 기초적인 개념에 대한 설명을 첨언하면서 진행하도록 하겠습니다. Python설치, 가상환경 설정, django 설치에 대한 내용...
Django - Basic - 2에서 프로젝트()를 만들고 App()을 만들었습니다. 그리고 실생활에서 웹페이지를 접속할때 Django가 어느 폴더들을 옮겨가면서 url을 확인하는지 간략하게 알아봤습니다. 이제 간단한 웹페이지를 화면에 띄워보겠습니다. 이를 위해 views.py, urls.py 파일들을 건드려야 합니다. views.py는 웹 화면에 ...
Django - Basic - 3에서 firstapp/views.py에서 index라는 메소드를 만들고 practice/urls.py에서 rootURL로 접근하면 firstapp의 view에 선언한 index를 실행하게 했습니다. 그리고 practice/urls.py에서 rootURL 접근시 firstapp으로 넘어가게 urls.py를 수정하고 firs...
지금까지 url을 입력하면 view 메소드를 사용해서 결과를 웹 페이지에서 확인했습니다. 이제 실제 html파일을 띄워보려고 합니다. Django에서 이런 html파일을 template이라고 표현합니다. 1. template 만들고 view로 보이기 먼저 화면에 보여줄 html 파일을 생성하겠습니다. 이 html 파일은 app파일 내에 만들어줍니다....
Django - Basic - 5에서 템플릿을 만들고 context와 request 변수를 넣어 렌더링했습니다. 이번엔 템플릿 내에서 로직에 따라 조건을 처리해 결과를 보여주는 방법에 대해 알아보겠습니다. 1. anchor tag url 설정 먼저 html의 anchor 태그의 url 넣는 방법을 알아보겠습니다. 위 두방법중에 권장하는 것은 아래의 ...
Django에서 static file을 다뤄보겠습니다. css,js,img 같은 것들을 static file이라고 합니다. 1. static file 사용 준비 그럼 img 파일을 firstapp/static/firstpp에 넣어주겠습니다. namespacing을 해주는 이유는 같은 이름의 파일이 다른 앱에 있을 때 일어나는 충돌을 방지하기 위함입니다. ...
여태까지 urls.py, views.py 그리고 template들만 가지고 공부를 했습니다. 이제 models.py를 다뤄보려고 합니다. 그전에 Model이 무엇인지 알 필요가 있습니다. 1. Model이란? 모델은 정보들을 저장하기 위해 사용하는 개념입니다. 우리가 만들 웹 서비스에서 사용할 정보의 특성에 대해 정의한 것을 의미합니다. 사이트의 게시...
이제 Model을 구현해보겠습니다. 그전에 Django - Basic - 8까지 진행한 firstapp과 구분하기 위해 second라는 앱을 만들어 주겠습니다. 그리고 app을 만들어줬으니 settings.py에서 'second'를 추가합니다. 그리고 Django - Basic - 8까지는 rootURL로 접근했을 시 firstapp으로 권한을 넘겼지...
1. MTV pattern 웹 프로그램 개발 시 일반적으로 언급되는 패턴은 MVC(model - view - controller) 패턴입니다. M(model)은 데이터, V(view) 는 사용자 인터페이스, C(controller)는 데이터를 처리하는 로직. 이렇게 3가지 개념으로 묶어서 구현합니다. Django에서는 MTV(model-template-...
Django - Basic - 10에서 Model을 정의해줬습니다. 이제 그 Model을 가지고 실제로 DB에 data들을 저장하고 읽어보겠습니다. 1. Database에 data 저장하기 Django Shell을 실행합니다. Django Shell을 이용하면 shell에서 바로 Django 명령어를 사용해서 data를 다룰 수 있습니다. shell을...
Django - Basic - 8에서 form에 관해 잠시 다뤘습니다. 어떤 역할을 하는지만 짚고 넘어갔으니 form에 관해 좀 더 알아보도록 하겠습니다. Form은 '사용자의 입력을 받기 위한 것'으로 생각하면 됩니다. 우리가 자주 보는 로그인 화면이나, 글쓰기 화면에 데이터를 입력 받는 입력 칸들과 버튼으로 이루어져 있습니다. Html form의 ...
Django Form을 사용해 게시물을 입력하는 화면을 구현합니다. 사용자로 부터 어떤 정보를 입력받을지 생각하면서 코드를 작성하는 것이 좋습니다. 1. 기본 폼 생성하기 second 에 간단한 폼을 생성해보겠습니다. 어떤 입력을 받을 것인지 필드를 정해줍니다. title에는 문자열을 받을 것이고 content에도 문자열을 받을 것인데 옵션을 보면 co...
Django - Basic - 14에서 form을 생성하고 화면에 띄워주기까지 완료했습니다. 이제 사용자가 form에 입력한 데이터를 전송해서 다른 화면에 보여주는 방법을 포스팅하겠습니다. 1. Overview create페이지에서 유저로부터 데이터를 받습니다. 입력받은 데이터를 어떻게 사용할지 views.py에서 결정합니다. url mapping을 해...
기존 모델 클래스의 필드를 입력받는 폼이 있습니다. 이를 Model Form이라고 합니다. 그냥 form 만으로도 데이터를 받아서 Post에 레코드를 추가할 수 있지만, 이렇게 할 경우 Post에 속성이 추가되면 form도 그 때 그 때 수정해 주어야 하고 form으로 받은 데이터를 다시 꺼내서 모델 클래스의 인스턴스에 넣어주어야 하는 번거로움이 있습니다...
기존에 작성된 views.py의 create 메소드에 GET으로 요청이 들어왔을 때와 form을 통해 POST로 요청이 들어왔을 때를 구분해서 처리하도록 하겠습니다. 이렇게 처리해주면 url mapping을 간결하게 처리할 수 있습니다. 1. Model Form으로 데이터 저장하기 만약 전달받은 방식이 POST방식이면 validation check를 ...
1. ORM(Object-relational mapping) ORM은 객체지향 언어에서 서로 다른 시스템 간의 데이터 형식 호환을 위해 데이터를 변환하고 맵핑(연결)해주는 기술을 의미합니다. Object는 OOP(Object oriented Programming)에서의 Object, 즉 클래스 형태를 의미합니다. 서로 교류하는 시스템 간에 사용하는 언어...
지금까지 공부한 내용을 베이스로 Model을 만들고 View 로직을 구현하고 url을 연결하는 예제를 해보겠습니다. example이라는 가상환경을 만들고 django를 설치한 뒤 example이라는 프로젝트를 만들었다는 가정하에 시작하겠습니다. request를 json data로 받아 데이터베이스에 존재하는 유저인지 확인하는 End Point를 만들어보...
여태까지는 제가 제 컴퓨터 안에서 서버를 돌리고 혼자 테스트를 했는데 이제 같은 와이파이를 사용하는 다른 호스트도 Request를 보내고 Response를 받을 수 있도록 해보겠습니다. 다음은 제가 구현한 End Point입니다. endpoint라는 프로젝트에 user와 comment라는 앱이 있고 model과 view구현은 다음과 같습니다. 이제, c...
Model 설계에 있어서 Relationship은 정말 중요합니다. 관계를 설정해주는 방법은 3가지가 있습니다. 1. ForeignKey ForeignKey는 one to many 관계를 의미합니다. 게시물과 댓글의 경우를 떠올리면 됩니다. 한 게시물에 여러 댓글이 달릴 수 있습니다. 위처럼 many에 해당하는 클래스에서 관계를 설정합니다. 1-1...
Django의 간단한 Model을 구현한 뒤에 DB에 데이터를 저장하고 저장한 데이터를 다루는 방법에 대해 포스팅하겠습니다. 1. Model 구현 위 처럼 간단한 Model을 구현하고 migrate까지 해줍니다. Django shell에서 데이터를 다뤄보겠습니다. 2. 데이터 조회 Django Shell을 실행합니다. 3개의 record를 생성해줍...
Django에서 MySQL Connector 사용법에 대해 포스팅하겠습니다. mysql 설치와 mysql-connector-python가 완료된 상태라고 가정하겠습니다. mysql을 실행한 뒤, 다음 2가지를 생성합니다. Database User 먼저 mysql에서 Database를 생성해줍니다. 위 방법은 그냥 생성하는 것이고 위 방법은 cha...
Naver Cloud Platform의 SENS 서비스를 이용해서 SMS를 보내려고 합니다. 일단, Naver Cloud Platform에 회원가입, 로그인 후 콘솔에서 프로젝트를 생성하고 설명서를 참고해서 발신번호 등록과 API 인증키를 생성하는 등의 과정을 진행해야 합니다. 저의 경우, 다음과 같이 회원가입 페이지에서 인증번호를 보내주는 기능을 구현...
카카오 소셜 로그인을 구현해보려합니다. Kakao Developres_를 참고했습니다. 먼저, 다음 그림을 참고해서 개략적으로 어떤 흐름으로 진행되는지 이해하고 있는 것이 좋습니다. social_login.png 이번 포스팅에서는 4번 전까지 일어나는 통신에 대해 다뤄보겠습니다. 1. Preparation kakao REST API 사용법을 참고해서 앱...
DB를 자주 호출한다면 즉, Query를 많이 한다면 통신은 느려질 수밖에 없습니다. 그렇기 때문에, 줄일 수 있는 Query는 줄이는게 좋습니다. 그리고 Django에는 record(혹은 instance)간의 관계를 미리 읽어들여서 Query를 줄이는 ORM이 존재합니다. 1. select_related(*fields) 다음과 같은 모델을 예로 들겠습...