본문으로 바로가기

[1일차] #3. 실습준비 - 설치 및 연동

category Develop/WEB2 - Python 2018. 12. 13. 21:28






1일차



수업소개

실습준비 - 설치 및 연동

문법 - 데이터 타입 - 숫자

문법 - 데이터 타입 - 문자열

활용 - 홈페이지를 CGI로 구현

활용 - URL query string을 가져오는 방법

활용 - CGI 소개

문법 - 제어문 소개

문법 - Boolean

문법 - 조건문

활용 - 조건에 반응하는 앱 만들기

활용 - 파일 기능을 이용해 본문 구현

문법 - Python 공식 문서 보는 법

문법 - list

문법 - 컨테이너들

문법 - 반복문 for

활용 - 반복문을 이용해서 글목록 구현

활용 - 생성 구현 1 - form

활용 - 생성 구현 2 - 전송한 정보의 처리

활용 - 수정 구현

활용 - 삭제 구현

문법 - 함수

활용 - 함수를 글목록 기능을 정리 정돈하기

문법 - 모듈

활용 - 모듈로 함수 정리 정돈

활용 - 보안(XSS)

활용 - Pypi와 패키지 매니저

API

수업을 마치며

부록 - Sound of coding





#3-1. 웹서버 설치


▲ 웹서버 'Bitnami' 설치 후, python 파일 만들기



□ 웹서버 설치하기 

 >2018/10/17 - [생활코딩/WEB1 - HTML & INTERNET] - [8일차] 웹서버 운영하기

□ 아톰에서 'add project folder'

□ 'index.html'에 hello world 입력 → '웹주소 127.0.0.1' 에서 확인




#3-2. 파이선 설치/실행 (Windows)


▲ Python 설치하기


▲ Add Python 3.7 to PATH 선택하기 



□ Add Python 3.7 to PATH 선택시, 'Terminal/Commandline'을 통해 어디서든 Python 실행가능

□ 위 상자체크 후, Customize installation 클릭




▲ 상자 다 체크되었는지 확인 후 'Next' 클릭


▲ 접근성을 높이기 위해 'install for all users' 클릭 후, 설치하기(Install)


▲ 설치완료


window + r 누른 후, cmd 입력


▲ 폴더 디렉터리 위치 확인


▲ 커맨드(cmd)에서 입력한 화면 



□ mkdir test (make directory test) : 'text'란 이름의 폴더 만들기

□ rmdir text (remove directory test) 'text'란 이름의 폴더 지우기

 ⇒ 위 방법을 커맨드 라인(Command line)을 통해 인터페이스(Interface)를 제어하므로 CLI 방식이라 부른다 (cf. 비주얼방식: 마우스로 오른쪽단추 ~ 폴더만들기)


□ python : python 실행하기

□ >>> (꺽쇠 3개) : 대화하듯이 상화작용 (interactive shell) (ex. 1+1 = 2)

□ >>> exit() : 파이선 종료 




▲ 아톰에서 만든 코드를 커맨드(cmd)를 통해 실행하기



① 아톰에서 확장자명이 파이선(.py)인 파일 만들기 

② 코드 입력 후 '복사'

③ 커맨드에 python 입력

④ python 실행 후 '붙여넣기' 

⑤ '4'를 응답하였다.




▲ 커맨드에서 직접 디렉터리를 설정하면, 'python'을 입력하지 않고 파일(helloworld.py)을 불러오는 것만으로 코드 실행이 가능하다.



□ cd \디렉터리주소\ (*cd 입력후 띄어쓰기 必) ⇒ 해당 디렉터리 주소에 머물게 됨

□ cd = chage directory

□ python helloworld.py → 열어서 해당 파일 읽음 

□ helloworld.py : '프로그램'에 해당되며, 해당 파일의 순서대로 명령이 실행된다.




▲ python을 붙이지 않더라도, 확장자명 (.py)로 코딩이 가능하다


#3.3 - CGI 설정


▲ 프로젝트 폴더 불러오기


▲ 'mod.cg'가 있는지 확인하기 



□ mod.cg : 아파치와 파이선 연동에 필요한 코드

□ 주의 : mod.cg 앞에 샵(#) 없을 것


 

▲ '경로 요청' 코드



□ DocumentRoot : htdoc에서 찾아라

□ Directory : 웹서버가 어떻게 다룰것인지에 대한 설정



▲ 백업파일 만들기 (.bak)

▲ 디렉터리 태그 밑에 '파일태그 입력'



Html            

<Files "*.py">

options ExecCGI AddHandler cgi-script .py

</Files>

□ ExecCGI (=Execute) : CGI 방식으로 실행 

□ 확장자 '(.py)'인 파일을 CGI로 실행한다




▲ Binami WAMP Stack '재시작(Restart)'


▲ 오류로그 확인 후 해당 디렉터리에서 '코드 지우기'


▲ 웹페이지 새로고침 후 다른 페이지로 이동하였다가 복귀


▲ 에러메시지 확인 후 해당내역 수정 → 웹페이지 새로고침



[에러원인] helloworld.py is not executable; ensure interpreted scripts have '#!' or "'!" first line

[해결방법] .py가 실행되지 않으므로, 해당 웹페이지 코드 첫 줄에 '#!'를 추가하여라




▲ 새로고침 후 새로운 에러코드 발견



[문제원인] malformed header from script 'helloworld.py' : Bad header: 4.0

[해결방법] malformed(=형식이 맞지 않는) → 헤더 형식 바꾸기




▲ python 웹페이지에서 '개발자콘솔'로 헤더확인 후 복사하기 


▲ 아톰에 붙여넣기 후 코드 수정



Html

print("content-type: text/html; charset-utf-8\n") print(b)

□ \n : 줄바꿈 약속 

□ 위 약속 덕분에 b의 값을 도출하고 'print(b)' 줄바꿈을 한다.


  


▲ 커맨드에 python helloworld.py 입력 → 정답 도출 '4'


▲ 웹페이지를 리로드한 결과, 답이 제대로 도출됨을 알 수 있다.