Django 강의 노트

백승찬·2020년 10월 27일
0

django

목록 보기
4/11

네트워크

  • 컴퓨터 외 세상의 모든 사물이 네트워크로 연결되어있다

client && server

  • client = device와 software 등 정보를 요청 하는 쪽

  • server = 데이터를 저장하고 정보를 응답 하는 쪽

서로 간의 이런 통신을 하는 프로토콜은 http로 주로 통신한다.

데이터 통신 순서

  1. 서버에 요청, 연결

  2. 요청에 따른 작업

  3. 클라이언트에 응답

  4. 연결해체 => 연결을 유지하기 위해서 쿠키 또는 세션 이용

  • 쿠키 : 데이터가 클라이언트 쪽에 저장 (보안 수준이 낮을 때)

  • 세션 : 데이터가 서버 쪽에 저장 (보안 수준이 높을 때)

POST && GET

  • GET
    • URL에 데이터가 노출됨
    • 데이터 길이에 제한 있음
    • 상대적으로 보안에 취약함
  • POST
    • 요청 메시지에 데이터를 담음
    • 상대적으로 보안에 강함
    • django에서 주로 사용함

URL

  • URL 기본 형태
    • 프로토콜 + 도메인(호스트) + 경로 + 쿼리
  • REST URL 형태
    • 프로토콜 + 도메인(호스트) + URL 맵핑(데이터)스트링 (경로와 쿼리를 별칭을 주어 요약)

서버 구성

  • 웹 서버
    • 주로 정적인 데이터 요청 처리
    • 동적인 데이터 요청시 애플리케이션 서버에 전달
  • 애플리케이션 서버
    • 주로 동적인 데이터 요청 처리
    • Database 연동

Django 설치 용어

  • pip
    • Python Install Package의 약자로 PyPI(Python Package Index)의 SW 패키지를 사용하기 위한 명령어

프로젝트와 애플리케이션

프로젝트 => 쇼핑몰 (전체적인 큰 틀)

애플리케이션 => 쇼핑몰에 필요한 기능

MVT 패턴

  • MVT pattern (View, Model, Template)
    • view가 지휘자 역할,
    • model은 내장된 경량의 DB와 SQL lite 3를 이용해서 소통함,
    • template는 경로를 직접 만들어서 html 문서를 만들어서 사용함
    • urls.py 역할 = URL mapping. 즉, 특정 url요청이 들어오면 특정 view를 찾아가라고 지시해주는 것

Django 프로젝트 설계

Django framework 흐름도

URLconf (urls.py)

URLconf -> mysite/mysite/urls.py

urlpatterns = [
    	path('student/register/', views.student_register),
        path('student/search/', views.student_search),
        path('student/modify/', views.student_modify),
        path('student/delete/', views.student_delete),
    ]
    
  • 위의 리스트 url의 구성을 보면
    • path('student/register/', views.student_register)
    • 'student/register/' => URL(클라이언트 요청 URL)
    • views.student_register => view (함수 또는 메서드)

View (views.py)

View -> mysite/polls/views.py

def registerStudent(request):
	# 데이터 베이스 등을 이용한 프로그램 실행 결과
    return HttpResponse()
  • user의 요청에 따른 애플리케이션 실행결과를 Template, 에러메시지 등을 이용해서 user한테 response

Model (models.py)

Model -> mysite/polls/models.py

  • ORM (Object Relational Mapping) 사용

models.py 클래스를 이용하여 ORM 되었을 때의 예시

Ex)
	class Student(models.Model):
    		roll_no = models.IntegerField(default = 010)
        	name = models.CharField(Max_length = 30)
        	stud_class = models.CharField(Max_length = 30)
        	department = models.CharField(Max_length = 30)
            
           		어플리케이션 이름_클래스 이름 테이블 생성
                	
                    	ex) student_student 테이블 생성
        

프로젝트 설정 (/mysite/settings.py)

  • settings.py -> 프로젝트의 전체적인 설정을 담당

개발자 모드와 운영모드 설정

DEBUG =True
    DEBUG =True # 개발모드
    DEBUG = False # 운영모드
    
ALLOWED_HOSTS = ['localhost','127.0.0.1']

# 개발자 모드
--입력하지 않아도 자동으로 loocalhost로 정의

# 운영 모드
--서버 IP주소 입력
  • 모든 어플리케이션을 설정파일에 등록

INSTALL_APPS 이용

0개의 댓글