Django활용 Web APP 개발

siyeon kim·2022년 11월 20일
0

kt aivle

목록 보기
22/24

1) 장고 기본

  • 파이썬 기반의 Full-stack 프레임워크

장고 MVT 디자인 패턴

  • View : Http 요청 처리
  • Model : 데이터베이스 처리
  • Template : 인터페이스 처리
  • Form : 입력데이터 처리

장고 실행 순서

  1. "mysite" 이름을 가진 장고프로젝트 생성
    -> cd:\dev>django-admin startproject mysite
  2. mysite에 myapp을 생성
    -> c:\dev\mysite>python manage.py startapp myapp
  3. myapp 앱을 mysite 프로젝트에 등록
    -> 프로젝트/mysite/settings.py/INSTALLED_APPS=['myapp']
  4. myapp에서 사용할 urls.py 생성
  5. ~:8000/myapp/하위경로" 요청시 하위경로는 myapp의 urls.py에서 검색하도록 설정
    -> settings 모듈의 ROOT_URLCONF = 'mysite.urls'
  6. mysite를 서비스하는 장고에서 지원하는 웹서버를 시작
    -> python manage.py runserver

ORM(Object-Relation Mapping)

  • 객체와 관계형 데이터베이스를 연결해주는 것
  • 데이터베이스 테이블을 객체와 연결하여 테이블에 CRUD할 때 SQL 없이 가능케 함
  • Model를 이용해 데이터베이스의 테이블과 연결하여 사용

마이그레이션

  • DB설정 > Model > 마이그레이션 파일 > migrate
  • 모델을 가지고 데이터베이스 테이블 생성하는 방법
    python manage.py makemigrations blog
    python manage.py migrate blog

장고 쉘을 이용한 데이터 추가, 수정, 삭제

python manage.py shell
from blog.models import Post
Post.objects.all()
p1=Post()
p1.name="홍길동"
p1.tel="010-000-000"
p1.save()
Post.objects.get(id=1)

2) 장고 템플릿

  • 사용자의 요청에 따른 뷰함수에서 응답하는 HTML 파일, 인터페이스

템플릿 응답

1. render

  • 응답
    render(HttpRequest,Template,[context])

2. context

  • 뷰함수에서 템플릿으로 전달하는 데이터
  • 딕셔너리 형태로 데이터 주기
  • render 함수에 세번째 인자

템플릿 필터

  • {{}} 문법, 가공해서 출력할 수 있도록 필터를 제공

템플릿 상속

  • 공통 코드들을 자식부분에서 block해서 처리
    부모
    {% block 이름 %}
    {% endblock %}
    자식
    {% extends "부모템플릿 경로" %}

3) 장고 Model

  • 장고의 핵심 기능

관계설정

1. 일대다 관계

2. 일대일 관계

3. 다대다 관계

4) 장고 Form

Post

  • 문자열 노출 X, 길이 제한 X

Get

  • 요청정보 헤더에 담겨 전달되는 방식
  • 헤더만 전달됨
  • 길이제한, 문자열 노출

CSRF

  • 요청방식에 따라서 다르게 작업
  • GET : 템플릿페이지를 응답하면서 CSRF 토큰 발급
  • POST : CSRF 토큰 검사한 fail이면 403응답, form에서 받은 데이터 처리

기능

  • get : 입력 페이지 응답 구현
  • post : 서비스 처리 응답 구현
profile
사회에 선한 영향을 미치고 싶은 개발자

0개의 댓글