Presentation is loading. Please wait.

Presentation is loading. Please wait.

Python Bottle Web Framework

Similar presentations


Presentation on theme: "Python Bottle Web Framework"— Presentation transcript:

1 Python Bottle Web Framework
IS lab. 김건영

2 오늘 할 거 1. 윈도우에 파이썬 설치 및 환경 설정 (학교 서버는 포트가 막혀 있습니다.)
1. 윈도우에 파이썬 설치 및 환경 설정 (학교 서버는 포트가 막혀 있습니다.) 2. Python Bottle 써보기 3. 과제 있음

3 1. 파이썬 설치 이미 깔려 있다면 6page로 넘어가시면 됩니다.

4 1. 파이썬 설치 원하는 곳에 설치 (주소를 기억해두자)

5 1. 파이썬 설치 Add python.exe to path를 on 해주자 빨간 X 클릭 후 맨 위 항목 체크

6 1. 파이썬 테스트 Cmd를 열어서 python실행
제어판->시스템->고급 시스템 설정->고급->환경 변수 Path변수 끝에 ;를 치고 아까 파이썬을 설치한 주소를 적 어준다. (이 ppt에선 c:\Python27, c:\Python27\Scripts)

7 1. pip를 통한 bottle 설치 Cmd창에서 아래와 같이 친다.
Successfully installed ~ 가 뜬다면 설치 완료 Pip가 없다면 python설치 경로/Scripts에서 python pip.py install bottle 실행 해당 폴더에도 없다면 그냥 보틀을 받자.

8 Bottle? Python의 대표적인 Web Framework 중 하나 (Pyramid, Tornado, Django, Bottle, Flask 등…) 웹 개발에 필요한 최소한의 기능만 제공하는 마이크로 프레임워크 4개의 구성요소 Routing: URL주소 접근에 따른 요청을 함수 실행으로 이어줌 Templates: HTML 문서와 동적 상호작용을 위한 문법 Utilities: 잡다한거(DB접근, 파일업로드, 쿠키) 편리하게 Server: 실행만으로 Server가 됨

9 Hello world in bottle 접속

10 Hello world in bottle http://localhost:8080/hello/자기이름 접속
구성요소들이 유기적으로 얽혀있다. Template Routing Server

11 Hello world in bottle Global로 1개의 app이 아닌, 여러 app들을 하나의 소스 로 관리 할 수 있다. Def 위에 오는 routing decorator를 좀 다르게 적고, run 에 실행할 app을 명시해야한다.

12 Request Routing 유저가 서버에 접근하는 주소들을 설정하고 관리 파이썬 기능 중 하나인 decorator로 설정
아래 코드는 route(‘/’)(greet), route(‘/he~..’)(greet)과 동일한 의미 즉 만든 함수 greet을 route함수를 써서 접근할 주소로 매핑

13 Request Routing 아래 코드는 greet 함수를 host/와 host/hello/<name> 주소로 매핑 >해당 주소로 유저가 접근하면 서버가 greet함수를 실행 <name>은 템플릿 기능 중 하나로 변수의 동적 할당을 가능하게 함 (Dynamic routing) > 유저가 name 변수에 임의로 적어서 접근하면 서버측 에서 name에 유저가 적은 string을 알 수 있음

14 Dynamic Routing 전 페이지의 <name>처럼 접근 주소를 변수로 사용할 수 있다.
매핑할 함수의 인자와 route 안에 들어가는 동적 주소를 똑같이 써줘야 한다.

15 Dynamic Routing: Filtering
주소의 type을 filtering을 통해 한정시킬 수 있다. <var:type>같이 적으며 가능한 type은 아래와 같다. :int = 정수형 입력 :float = 실수형 입력 :path = /(slash)를 포함한 모든 단어 인식 :re = 정규표현식 Custom filter도 추가 가능

16 HTTP request methods HTTP protocol 처리
@route 가 get, post 등으로 wrapping되어 있다.

17 HTTP request methods 전 페이지 코드에 check login과 run을 추가하여 돌리면 아래와 같이 뜬다.

18 Static files Web, serve를 제외한 외부 파일들을 총칭 (Ex: CSS 등)
Bottle에서는 간단하게 외부 파일들을 웹으로 표현가능 Static_file 오픈 예제 (서버의 디렉토리 구조를 숨긴다.) 이미지 표현 예제 다운로드 창 예제

19 Error page, Redirection

20 Response object Bottle.response 객체는 웹과 관련된 metadata들을 저장 하고 설정할 수 있게 해준다. (http header, cookie 등) http protocol header의 Content-Language를 en으로 수정하였다.

21 Cookies Cookie: 사용자(클라이언트) 쪽에 저장되는 임시 변수
get, set cookie로 간단하게 사용할 수 있다. Secret 매개변수로 쿠키 암호화 가능

22 Request object Bottle.request는 response와는 반대로 클라이언트 측에 서 온 header, forms, cookie등을 저장하고 있다.

23 Request object POST로 온 http, form정보 조회 및 처리 GET이면 query, POST면 forms

24 Request object Request에서 사용할 수 있는 하위 속성들과 그 특징 POST로 온 파일 저장

25 Templates 동적인 웹 페이지를 표현하기 위해 HTML과 같이 쓰이 는 문법들을 총칭
Bottle의 기본 template engine인 simple template을 제 외하고도 오픈소스 프로젝트인 Mako, Cheetah, Jinja2 template 지원 강의에서는 simpl만 사용, 아래 두개만 알면 됨 Inline expression: {{…}} Embedded python code: % or <% … %>

26 Templates Inline expression: 어떤 python 코드든 사용 가능
Embedded python code: % or <% … %> 어떤 python 코드든 사용 가능, 그러나 tab, 스페이스바 로 인한 블록 구분이 안되므로 블록이 끝나는 곳에 % end를 적어야함

27 Templates Bottle 코드 hello_template.tpl

28 정리하자면 Bottle에서 기억할 건 1. 기본적인 구조 2. Routing: 주소 -> 함수
3. request, response: 메타 데이터들 4. template: python변수를 html로

29 과제 메일 : gyk@kangwon.ac.kr 메일 제목 : [학번]이름_bottle
1. Hello world in bottle 2. Dynamic routing 3. Request 4. Template 실습자료에서 위에 해당되는 예제들을 각각 한 개씩(총 4개) 치고 실행 결과를 스크린샷으로 찍어서 보내주세요.


Download ppt "Python Bottle Web Framework"

Similar presentations


Ads by Google