[TIL] Day 16 - Django (web framework)

기역의궁전·2021년 5월 20일
0

dev2_TIL

목록 보기
17/18

Django

: python 기반의 웹 프레임워크

시작 (feat. 가상환경 venv)

가상환경 구축 및 설치

$ virtualenv venv
$ source venv/bin/activate
(venv) $ pip3 install django

장고 시작 (venv)는 생략

$ django-admin startproject <프로젝트 이름>
$ cd <프로젝트 이름>
$ python3 manage.py runserver

django 프로젝트 구성
-> project를 안에 여러 App이 들어간다. 따라서 프로젝트 시작하면 프로젝트 폴더(/project)안에 App설치

$ django-admin startapp < 이름>

Django의 MVT pattern

User -> [Django] -> URL(urls.py) -> View(views.py) -> Model(models.py)-DB(ORM) - Template(HTML, template 언어)

Django - view

: 들어온 요청에 대한 처리
URL - View가 연동되기 때문에 url.py 와 view.py 그리고 setting.py도 함께 수정 및 연동해야함.

admin ID 생성

먼저 기본 생성된 DB를 마이그레이트 하기

$ python3 manage.py migrate

그리고 ID 생성

$ python3 manage.py createsuperuser
username :
email :
password :

Django - View - Template

  1. request 시, 보여줄 [.html]파일 생성 (template 폴더 안에)
  2. [view.py]에서 [.html]파일을 render 함수로 전달
  3. [setting.py]에서 template에 DIRS에 경로 저장

template 언어

  • template filter {{ string | length }}
  • template tag {% if %} {% endif %}

Django - View - Model

: DB 구조화

models.py의 DB

class 선언, 즉 하나의 객체가 DB에서 각각의 행(Row)가 되고,
안에 field가 DB에서 각각의 열(Col)가 된다.
field는 각각의 속성이 존재 (charField, IntegerField ...)

admin.py에서 DB관리가 가능하다

$ python3 manage.py makemigrations <App_name>
# 마치 git add 처럼
$ python3 manage.py migrate
# 위 작업을 통해 model제작을 제작했음을 알려주어야 함

Template에서 Model 확인하기

  1. models.py에서 모델 DB를 만든다.
  2. views.py에서 import 후, 새로운 view 혹은 DB를 return한다.
  3. urls.py에서 import 후, 주소를 path에 연결해준다.
  4. Template에서 views.py에서 return 해준 값을 인자 변수로 사용한다.

Form(양식에 대한 객체)에서 Template로 Model수정

  • form.py 생성 (새로운 파일로)
# form.py
from django import forms
form .models improt Coffee
class CoffeeForm(forms.ModelForm)
	class Meta :
    	model = Coffee
        fields = ('name','price','is_ice')
  • view.py에서 from .forms import CoffeeForm 후, {}인자로 form 객체 값을 return
    이때 POST method일 경우 추가 작업

  • Template [.html]파일에서 form 태그를 사용해서 RESTful
    보안 토큰 추가 form태그 사이에 {% csrf_token %} 기재

※ git commit 가장 최근 메시지 변경

: 가장 마지막에 커밋한 메시지를 push하기 전 로컬에 있다면,
$ git commit --amend -m "변경할 메시지"

0개의 댓글