반응형

파이썬 69

MVT - Models 내용

자 이제 세부적인 내용을 알아보자. 우선 모델이란 사용될 데이터에 대한 정의를 담고 있는 장고의 클래스다. 장고는 ORM기법을 사용하여 애플리케이션에서 사용할 데이터 베이스를 클래스로 매핑하여 코딩할 수 있다. 즉 하나의 모델 클래스는 하나의 테이블에 매핑되고 모델 클래스의 속성은 테이블의 컬럼에 매핑된다. 더보기 더보기 이때 ORM이란? ORM(Object - Relational Mapping)은 객체와 관계형 데이터베이스를 연결해주는 역할을 한다. 기존에 사용자가 직접 SQL 언어를 사용해 데이터를 요청했던거와 달리 ORM 덕분에 데이터베이스 대신 객체(클래스)를 이용해 데이터를 처리할 수 있게 되었다. ORM은 자동으로 적절한 SQL 구문이나 데이터베이스 API를 호출해서 처리해주기 때문. 더보기 ..

파이썬 2020.09.19

프로젝트 생성전 = 뼈대 디렉토리 및 파일에 대한 설명

항목명 설명 ch3디렉토리 플젝트 관련 디렉토리 및 파일을 모아주는 최상위 루트 디렉토리다. 보통 settings.py파일의 BASE_DIR항목 db.sqlite3 SQLite3 데이터베이스 파일. 테이블이 들어있다. manage.py 장고의 명령어를 처리하는 파일 항목명 설명 mysite디렉토리 프로젝트명으로 만들어진 디렉토리다. 프로젝트 관련 파일들이 들어있다. __init__.py 디렉토리에 이 파일이 있으면 파이썬 패키지로 인식한다. settings.py 프로젝트 설정파일이다. urls.py 프로젝트 레벨의 URL 패턴을 정의하는 최상위 URLCONf 보통은 애플리케이션 디렉토리마다 하위 urls.py파일이 또 있다. wsgi.py Apache와 같은 웹서버와 WSGI 규격으로 연동하기 위한 파일..

파이썬 2020.09.19

애플리케이션 설게하기 - PK와 FK

파이썬 웹 프로그래밍 pg 106 에 있는 기본 테이블 설계에 나온 예시 분석해보겠다 칼럼명 타입 제약조건 설명 id integer NotNull, PK, AutoIncrement Primary key question_text varchar(200) NotNull 질문 문장 pub_date datetime NotNull 질문 생성 시각 Not Null : 모든 칼럼은 Not Null로 정의되어 있기 때문에 칼럼에 값이 있어야 한다. PK : primary Key Auto Increment : Primary key 를 자동증가 속성으로 지정했다. 칼럼명 타입 제약조건 설명 id integer NotNull, PK, AutoIncrement Primary key choice_text varchar(200) ..

파이썬 2020.09.19

Template 화면 UI 정의

장고가 클라이언트에게 반환하는 최종응답은 HTML 텍스트다. 개발자가 응답에 사용할 *.html파일을 작성하면 장고는 이를 해석해서 최종 HTML텍스트 응답을 생성하고 이를 클라이언트에게 보내준다. 클라이언트는 응답으로 받은 HTMl텍스트를 해석해서 우리가 보는 웹 브라우저 화면에 UI를 보여준다. 이런 과정에서 개발자가 작성하는 *.html파일을 템플릿이라 부르며 여기에 화면 UI모습을 템플릿 문법에 맞게 작성한다. 장고는 디자이너가 쉽게 이해할 수 있는 문법으로 구성되어 있어 디자이너와 개발자간 협업이 편리하다. 템플릿 파일은 *.html 확장자를 가지며 장고의 템플릿 시스템 문법에 맞게 작성한다. 유의할 점은 템플릿 파일을 적절한 디렉토리에 위치시켜야 한다는 것. 즉 장고에서 템플릿 파일을 찾는 방..

파이썬 2020.09.18

정규표현식에 사용되는 문자의 의미.

URL 패턴에 정규표현식을 사용하면 더 복잡한 URL을 표현할 수 있다. from django.urls import path, re_path from . import views urlpatterns = [ path('articles/2003', views.special_case_2003), re_path(r'^articles/(?P[0-9]{4})/$', views.year_archieve), re_path(r'^articles/(?P[0-9]{4}/(?P[0-9]{2}/$', views.month_archieve), re_path(r'^articles/(?P[0-9]{4}/(?P[0-9]{2}/(?P[\w-]+/$', views.article_detail), ] 정규표현식에 사용되는 문자의 의미는 다음..

파이썬 2020.09.13

Django's MTV pattern 과 코딩 순서

웹 프로그램 개발시 일반적으로 MVC ( model - view - controller ) 패턴으로 구분하여 한 요소가 다른 요소에 영향을 주지 않는 구조로 개발한다. 이를 그대로 받아들인 파이썬은 신기하게도 용어가 다르다. 파이썬에서는 view 를 template으로 controller을 view라고 불러 MTV 패턴이라고 한다. 참고한 책의 경우 MVT라고 적었지만 MVC모델과 일대일 대응되는 관계를 고려해보면 MTV패턴이라고 쓰는 것이 올바른 것 같다. 구글도 자동완성으로 MTV라고 고치려고 하기도 하고. 파이썬에서는 view를 담당하게 될 것을 대략적으로 이해할 수 있는 그림 이것도 있다. 과정을 설명하면 1. 클라이언트에게서 요청을 받으면 URLconf를 통해 URL을 우선 분석한다. 2. UR..

파이썬 2020.09.13

간단 wsgi server 까지

CGI 방식은 요청 들어올 때 마다 프로세스가 생성되는 방식. 따라서 짧은 시간에 수천 수만의 다량 요청을 받으면 서버 부하가 높아져 프로세스가 멈추거나 다운된다는 단점이 있다. 이 단점을 해결하고 애플리케이션을 쉽게 작성할 수 있도록 웹 서버와 애플리케이션 간의 연동 규격을 정의한 것이 WSGI규격이다. 그래서 파이썬에서는 WSGI규격만 맞추면 어떤 웹 서버에서도 파이썬 애플리케이션을 실행할 수 있다. WSGI규격에 따라 애플리케이션을 개발할 떄 중요한 사항 두가지 1. 개발이 필요한 애플리케이션을 함수 또는 클래스의 메소드로 정의하고 애플리케이션 함수의 인자는 다음과 같이 정의한다. def application_name(environ, start_response): enviorn : HTTP 환경변수..

파이썬 2020.09.12

파이썬 urlopen()함수 예제 - Request 클래스로 요청 헤더 지정

urllib.request 모듈에 있는 urlopen()함수는 주어진 url에서 데이터를 가져오는 기본 기능을 제공한다. 가장 간단한 웹 클라이언트 프로그램 만들기 from urllib.request import urlopen f=urlopen("http://www.example.com") print(f.read(500).decode('utf-8')) 위는 가장 간단한 GET방식의 요청 클라이언트 프로그램이다. GET방식은 웹브라우저가 데이터를 끌어오는 것이랑 같은 원리로 가져온다. 다음은 POST방식 from urllib.request import urlopen data = 'language=python&framework=django' f = urlopen("http://127.0.0.1:8000", ..

파이썬 2020.09.10
반응형