9xD Django Study
파이썬 웹프로그래밍 - Django로 배우는 쉽고 빠른 웹개발 Charter 2
발표자 - 김한성
ppt 내용 : 실습 예제 및 내용 요약
개발툴 : pycharm
개발환경 : python 3.5 이용(일부 예제의 경우 동작안함 - 주석 참고)
소스코드 : 2 page github 링크이용
3. 시작 전 확인
• 버전 확인 : cmd창에서 python –V으로 확인
• 여러가지 버전을 사용해야한다?
(공부는 3.5로 하지만 회사에선 3.6을 써야할 경우)
• Pycharm에서 인터프리터 설정시 Virtualenv(가상환경변수)를 사용
• Mac/리눅스 : 설치시 대부분 자동으로 구별
(python3.5와 python3.6으로 버전별로 실행 가능함
• 윈도우 : 그냥 설치하면 구별이 안되며 따로 Script path를 잡아야 함
(py -3.5, py -3.6)
3
4. 시작 전 확인(윈도우 유저)
• Cmd창에서 python35, python36 사용법
• 모든 python.exe, pythonscript path를 환경변수로 등록해주고
• python.exe 이름을 바꿔주면 됨
• Python35.exe python36.exe
4
5. 2장에서는
• 라이브러리, 프레임워크, 플랫폼 차이점
• 표준 라이브러리(모듈)
- 2.x와 3.x 차이점
- 웹 클라이언트 라이브러리
- 웹 서버 라이브러리
• 상용 웹 서버와의 연동
- CGI
- WSGI
5
6. 플랫폼 vs 프레임워크 vs 라이브러리
• 플랫폼 : 어플리케이션을 동작 시킬 때 기반이 되는 OS와 그 밖의 환경, 설정
• J2EE (Java 2 Platform for enterprise Edition) – 5부터 Java EE 5
• 윈도우 7, 8, 10 / IOS 10 / Ubuntu
• 프레임 워크 : 일반적인 기능을 가진 코드를 유저가 선택적으로 덮어쓰거나
특화한 것
• Spring(Java)
• Flask, Django(Python)
• 라이브러리 : 클래스나 서브루틴의 모임. 대상 플랫폼에서 바로 실행됨
• http, urllib
6
7. 웹 라이브러리의 구성
• urllib – 클라이언트
• http – 서버, 클라이언트
• cookie, server는 사용X
• 대신 Django 웹 프레임워크사용
• Django – 웹 프레임워크
7
9. 웹 클라이언트 라이브러리
• 웹 서버에 요청을 보내는 애플리케이션 = 웹 클라이언트
• ex) 웹 브라우저, 어플(네이버, 다음)
9
10. 서버가 없는데 뭘로 연습해야 하는가?
• http://www.example.com
• 교재 예제 사이트
• 일부 내용은 안됩니다.(코드내 주석 참고)
• Naver API를 사용합니다.
• https://developers.naver.com/main/
• Application – 애플리케이션 등록 – 나머지 잘 입력 후 등록
• client ID, Secret를 config.py에 입력(코드내 주석 참고)
• 딱 1번 밖에 안써서 굳이 하실 필요는 없습니다 ㅎㅎ
10
11. urllib.urlparse
• src – client – urllib_ex – [urlparse35.py]
• URL을 parsing하여 ParseResult로 반환
• 자세한 내용은 주석 참고
11
12. urllib.urlopen – GET, POST
• src – client – urllib_ex – [urlopen35.py, request35.py
auth35.py, cookie35.py, proxy35.py]
• default format = urlopen(url, data=None, [timeout])
• url(“http://www.naver.com”) - GET
• url(http://www.example.com, data=“query=python”) - POST
• GET, POST 요청만 처리 가능
• 헤더 추가/변경이 필요한 경우 : Request class 사용
• 인증, 쿠키, 프록시 등의 경우 : 해당 핸들러 클래스를 같이 사용
12
14. httplib – GET, HEAD, POST, PUT
• urllib에서 제공되는 방식이외의 요청을 보낼 경우에 사용
• GET, POST를 제외한 요청방식(PUT, DELETE 등)
• 헤더와 바디 사이에 타이머를 두어 시간을 지연시키는 경우
• src – client – httplib_ex – httplib35.py
• 코딩 순서
• 연결 객체 생성
• 요청 보냄
• 응답 객체 생성
• 응답 데이터를 읽음
• 연결을 닫음
14