Django my first project(1)

이영주·2020년 11월 7일
0

장고 프로젝트 초기 세팅은 어떻게 할까?

가상환경 (https://velog.io/@yj-leee/Django-web-framework)

Project에 필요한 python package 설치

$ pip install django

# 이후에 MySQL server에 접속하기 위한 package
$ pip install mysqlclient
  (중요)mysql 부터 설치할것

Django project & application 생성

django-admin startproject westarbucks
$ cd westarbucks

$ python manage.py startapp products

settings.py 설정

IP 허용
ALLOWED_HOSTS = ['*']

주석처리

westarbucks/urls.py를 아래와 같이 수정

from django.urls import path

urlpatterns = [
]

Database 생성

Database 수정

products/models.py 작성

Frame work 장고

프레임워크란?

소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합
라이브러리는 단순 활용 가능한 도구들의 집합을 말한다.
따라서 프레임워크가 라이브러리보다 더 큰 범위이다.

Python django vs Flask

파이썬의 웹 프레임워크의 대표적인 2가지는 Flaskdjango이다.

djangopythonfull stack web framework인 반면
Flask는 가볍고 확장이 가능한 web frame work 이다.

django는 flask보다 약 10배의 많은 코드라인으로 개발이 되어있으며 orm 기능이 내장되어 있으며 web application을 개발하기 위한 대부분의 기능들이 갖추어져 있기 때문에 외부 도구 및 라이브러리를 사용하지 않고도 어느 정도 규모가 있는 web application 개발이 가능한 아주 좋은 아이이다.

template은 위코드에서는 다루지 않는다.

그렇다면 Modelviews에 대해 알아보자

Model
데이터베이스의 테이블을 정의하는 것
데이터베이스의 sql언어를 파이썬 코드로 연결되어야 한다.
이것은 orm이라는 녀석이 해준다.
파이썬의 클래스로 테이블을 만든다.

views
로직 처리
위에서 장고의 템플릿은 화면을 띄워주고, 모델은 데이터베이스 테이블을 정의해주는것이라고 배웠다. 뷰는 데이터를 다루고 기능을 구현하는 로직을 만든다.
그리고 요청에 맞게 가공해 보내주는 것을 처리한다.

▶ 로직 처리 부분에서 시간 복잡도와 공간 복잡도를 계산해 성능 최적화를 생각 해내는것이 백엔드의 역할이다! "어떻게 하면 빠르게 작동하게 할 수 있을지"를
생각하면서 로직을 짜는곳이 뷰이다.

Djangoworkflow

  • 백엔드는 기본적으로 요청에 의해서 움직인다.
    요청의 주체인 프론트엔드(client)가 브라우저에 의해서 요청(`Request')한다.

  • url
    홈페이지 주소 뒤에는 기본적으로 /가 들어가고 나머지 주소로 어떤 페이지로 이동할지 정해준다.
    은행에서 번호표 뽑아서 어디로 가세요~ 하고 안내해주는 역할이다.

  • view
    요청에 맞는 views에 도착하게 되면 어떤 요청인지 해석해서 CRUD한다.

  • model
    위에서 모델은 데이타베이스 테이블을 만드는 애라고 배웠다.
    orm은 파이썬과 mysql을 연결해주는 역할을 한다.
    orm은 여기서 뿐만 아니라 그 역할을 하는 패키지가 있는 굉장히 큰 개념이고 여기서는 장고 orm을 쓰게 된다.

0개의 댓글