프로그래밍
-
WSGIweb/flask 2019. 11. 19. 17:11
WSGI Web Server Gateway Interface. 파이썬으로 만들어진 프로그램이 웹 서버와 통신하기 위한 규칙 WSGI는 서버와 앱 양단으로 나뉘어져 있다. WSGI 리퀘스트를 처리하려면 서버에서 환경정보와 콜백함수를 앱에 제공해야 한다. 앱은 그 요청을 처리하고 콜백함수를 통해 서버에 응답한다. Middleware 이러한 커뮤니케이션을 WSGI 미들웨어가 보충한다. 이 미들웨어는 서버의 관점에서는 앱으로, 앱의 관점에서는 서버로 행동한다. 이 미들웨어는 아래와 같은 기능을 가진다. 환경변수가 바뀌면 타겟 URL에 따라서 리퀘스트의 경로를 지정해준다. 같은 프로세스에서 여러 애플리케이션과 프레임워크가 실행되게 한다. XSLT 스타일시트를 적용하는 것과 같이 전처리를 한다. 미들웨어에는 mod..
-
웹 서버와 C.G.Iweb/flask 2019. 11. 19. 17:01
웹 서버 인터넷을 통해서 요청된 웹 컨텐츠(이미지, html, 등)의 전달을 도와주는 하드웨어와 소프트웨어를 말함 웹서버는 기본적으로 '정적'이다. 무슨 말이냐면, 클라이언트가 HTTP 리퀘스트를 통해 리소스를 요청하면, 그 리소스를 그대로 보내주는게 웹 서버의 역할이다. CGI(Common Gateway Interface) 웹 서버에서 어플리케이션을 작동시키기 위한 인터페이스. 정적인 웹서버를 동적으로 기능하게 하기 위해서 등장하였다. 서버 프로그램과 외부 프로그램 간의 인터페이스가 바로 CGI이다. 기존에는, 웹서버가 있고 클라이언트에서 외부 프로그램이 필요한 리퀘스트가 들어오면 CGI를 통해 외부 프로그램을 실행시켜 리퀘스트에 응답했다. 요즘에는 웹서버에 인터프리터를 내장함으로써 따로 프로세스를 f..
-
플라스크 객체 gweb/flask 2019. 11. 18. 20:46
플라스크는 기본적으로 제공해주는 기능들이 존재함 기본으로 제공해주는 기능들을 다룰려고 함 Global Object : g from flask import g 플라스크라는 모듈에서 g라는 전역 변수를 받음 관련 내용은 다음과 같음 from flask import Flask,g app = Flask(__name__) app.debug = True # 이제부터 app.~~ 형식으로 필요한 부분을 하나씩 추가하면 됨 @app.before_request # request 요청을 처리하기전에 한번 어떠한 동작을 해달라고 하는 부분 # 즉 어떠한 요청이 들어오더라도 before_request는 무조건 한번 타게 됨 def before_requset(): print("before_request!!!") g.str = ..
-
플라스크의 구동 방식web/flask 2019. 11. 18. 18:42
플라스크라는 웹 애플리케이션은 어떤 공간에 떠있는 상태임 현재 웹 애플리케이션은 연습용으로 생성한 flaskapp 디렉터리가 있음 해당 공간은 메모리임 즉 웹 애플리케이션은 메모리라는 공간에서 띄어준 것 메모리에 떠있는 플라스크 애플리케이션은 계속 한 곳을 쳐다보고 있음 쳐다 보고있는 곳이 바로 포트임 플라스크 웹 애플리케이션을 생성할때 포트를 만약 5000 번을 지정해주었다면 해당 애플리케이션은 5000번 포트를 메모리에서 계속 지켜보고 있다가 만약 5000번 포트로 URL 요청이 들어온다면 플라스크 애플리케이션이 실행 되면서 MVC의 패턴대로 내부가 실행 되고 눈에 보이는 결과를 출력 그렇다면 위의 웹 애플리케이션을 메모리라는 곳에 띄어 줄려면 어떻게 해야 하는가 ? 그것이 바로 처음에 웹 서버 애플..
-
M.V.C 패턴web 2019. 11. 18. 18:02
애플리케이션을 세가지의 역할로 구분한 디자인 패턴 Model : 객체 -> 데이터를 담당 테이블 사용자에 대한 객체라면 사용자의 id, pw의 값 즉 유저의 데이터를 가지고 있음 View : 템플릿 -> 시작적인부분 담당 html Controller : 라우터의 역할 Class가 정의 되어 있으며 해당 클래스의 매서드는 각 URL에 해당하는 매서드가 정의 URL별로 있는 매서드는 모델을 호출해서 사용자의 요청에 맞는 데이터를 뽑아오고 뷰를 통해서 화면에 뿌려줌 예시) url : login/ -> login이라는 매서드 url : home/ -> home_page라는 매서드 사용자가 URL 요청을 하게 되면 컨트롤러는은 해당 URL을 가지고 사용자의 요구사항 파악한뒤 템플릿과 뷰의 내용을 현재 요구사항에 ..
-
플라스크 기본 설치web/flask 2019. 11. 18. 16:56
pip install flask 설치한 뒤 기본적인 디렉터리 생성 구조는 다음과 같음 최상위 디렉터리 pyweb 하위 디렉터리로는 웹 애플리케이션을 서비스할 디렉터리 생성 즉 분리시켜서 여러개의 웹 사이트를 생성할 수 있음 1. hello flask : 서비스할 웹 애플리케이션 ( 연습용 목적 ) 2. blog : 서비스할 웹 애플리케이션 ( 블로그 서비스 ) 3. start_flask : 웹 __init__.py을 등등으로 자신이 서비스할 경우에 따라 나누어 주며 포트로 나누어서 사용 EX ) 1번 애플리케이션은 5000번 포트 할당후 사용 2번 애플리케이션은 8000번 포트 할당후 사용 위와 같이 모든 동적인 웹 서비스를 담당하는 프로그램을 웹 애플리케이션이라고 칭한다. 웹 서버 -> 정적인 결과물을..