-
[Django] Login(로그인), Comment(댓글) 관련 간단한 endpoint 만들어보기 - 2Software, Computer Science/Django, Flask 2020. 2. 10. 10:24
바로 직전에 이어서 Login과 Comment 기능을 수정하고자 한다. 멘토님의 조언을 받아 해당 api를 만드는데 있어 아래와 같은 기준을 적용하고자 한다. 기능과 성격의 연관성을 고려하여 app을 만들자(ex) account 관련 app과 comment 관련 app은 분리해서 구현) 처음부터 너무 여러가지 경우의 수를 한번에 고려하지 않고 가장 단순하고 최소의 기능만 먼저 완벽하게 구현해보자. 그러나 2~3가지 이상의 복잡한 조건에 대한 기능을 한번에 구현하려면 구현중에 많은 에러와 버그를 만날 가능성이 높아져 효율적인 기능 구현이 어려워 지기 때문에 일단 단일 유형의 계정을 하나 정하고 해당 계정과 비밀번호를 잘 받아오는지를 판단하게끔 구현하는 것으로 방향을 잡는다. 계정 앱 views.py에는 S..
-
[Django] Login(로그인), Comment(댓글) 관련 간단한 endpoint 만들어보기 - 1Software, Computer Science/Django, Flask 2020. 2. 8. 16:52
이전 포스트에서 GET과 POST를 할 수 있는 간단한 endpoint를 구현해 보면서 HTTP 요청, 응답이 백엔드 서버와 클라이언트 사이에서 어떻게 일어나는지 간단하게 테스트 해보았다. 이를 응용해서 Login과 Comment 부분을 구현해 본다. 처음에는 Login이나 Comment를 달고 보는 기능이나 같은 앱 상에 있기 때문에 django 프로젝트 내에 하나의 앱에서만 작성해도 큰 무리가 없을 거라 생각하고 하나의 앱 내에서 models.py와 views.py를 다음과 같이 작성했다. # /models.py from django.db import models # Create your models here. class Account(models.Model): username = models.Cha..
-
[Django] 간단한 endpoint를 django 에서 구현해 보기Software, Computer Science/Django, Flask 2020. 2. 7. 22:24
이번에는 django를 본격적으로 사용하는 포스트인데 실제 프로젝트를 하기 앞서 먼저 HTTP 통신으로 데이터를 주고받을 수 있는 가능한 간단한 프로젝트를 진행해 보고 알고 있는 내용을 체크해 본다. 1. Django project 생성 및 view의 최소 뼈대 생성 ([virtualenv_name]) $ django-admin startproject simple_end (가상환경을 설정할 수 있다면 설정한 상태에서) 위와 같은 명령어로 프로젝트를 만들게 되면 simple_end ├── manage.py └── simple_end ├── __init__.py ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py 위와 같은 형태의 트리 구조의 django projec..
-
[Django] Django MVT 패턴에 관한 내용 정리, url이 분석되는 순서Software, Computer Science/Django, Flask 2020. 2. 5. 22:26
MVT 패턴이란 ? Django framework에서 기본적으로 사용되는 design pattern(링크참조)이며 이 design pattern에서 유명한 것이 M(model).V(view).C(controller) 패턴이다. 하지만 django에선 V와 C 부분이 각각 Template, View(django view)로 치환되어 사용되는데 그에 따른 철학적인 이유는 django 공식문서에 잘 나와 있다.(django docs 참조) 위 이미지와 같이 클라이언트에 대해서 request를 URLConf를 통해 view가 받게 되고 view에서 해당 request에 대한 처리를 진행하면서 데이터가 필요하다면 그걸 model을 기반으로 C(Create), R(Read), U(Update), D(Delete)작..
-
[Django tutorial] django official tutorial part4 정리Software, Computer Science/Django, Flask 2020. 2. 3. 22:15
Part 4 설문 form에 맞게 detail.html을 아래와 같이 구성한다. {{ question.question_text }} {% if error_message %}{{ error_message }}{% endif %} {% csrf_token %} {% for choice in question.choice_set.all %} {{ choice.choice_text }} {% endfor %} 참고) 여기서 주목할 점은 {% csrf_token %} 부분인데 POST작업을 수행할 때 발생할 수 있는 CSRF(Cross Site Request Forgeries - 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등등)를 특정 웹사이트에 요청하게 만드는 공격)보안 문..
-
[Django tutorial] django official tutorial part3 정리Software, Computer Science/Django, Flask 2020. 2. 3. 21:29
Part 3 django에서의 view는 특정 기능과 알고리즘을 수행하며 template을 제공해 주는 역할을 하는 웹페이지이자 모듈이다. polls 앱 기준으로 다음과 같은 4개의 view를 구성해 볼 수 있다.(실제 MVC 디자인 패턴에서 Controller에 해당한다, 또한 View는 django에서 template이나 FE단의 페이지가 될 수 있다) 질문 "index" page : 질문 표시 질문 "detail" page : 질문 및 투표 서식 표시 질문 "results" page : 특정 질문에 대한 결과 표시 투표 기능 : 질문에 대해 투표할 수 있는 기능 from django.shortcuts import HttpResponse def index(request): return HttpResp..
-
[Django tutorial] django official tutorial part2 정리Software, Computer Science/Django, Flask 2020. 2. 3. 20:36
Part 2 myproject/settings.py 살펴보기 django framework에서 DB설정 변경은 myproject/settings.py에서 가능하다. 기본 DBMS는 같이 설치되어 내장된 SQLite3 을 사용한다. django를 공부하거나 간단히 테스트 하는 용도로는 부족함이 없고 실제 프로젝트에선 다른 DB를 사용하는 것을 권장한다. settings.py 안에 있는 DATABASE에 default항목의 값을 수정해 주면 된다. 가능한 종류는 (링크참고) SQLite이외의 DB는 해당 프로젝트 경로에 DB를 직접 생성해주어야 한다. DATABASES = { 'default': { # 이 부분을 수정해주면 된다 'ENGINE': 'django.db.bac..
-
[Django tutorial] django official tutorial part1 정리Software, Computer Science/Django, Flask 2020. 2. 3. 17:02
(Django framework official tutorial : https://docs.djangoproject.com/ko/3.0/intro/tutorial01/#creating-a-project) Python을 이용하여 본격적인 Back-end 개발을 하기 앞서 공식 튜토리얼을 통해 간단한 설문조사 앱을 작성하며 django framework에 대한 기초를 잡았고 튜토리얼을 따라가면서 중요하거나 새롭게 알게된 사실을 정리 시작하기 전에 Python 가상환경 설정(miniconda3 기준) django 프로젝트를 진행하기 앞서 가상환경을 설정해 준다. 가상환경을 설정해 주는 이유는 일반환경(로컬환경)에서 작업을 하게 되면 하나의 프로젝트만 작업하지 않는 이상 각각 project 마다 사용되는 패키지..