6강 (활용) 홈페이지를 CGI로 구현
#!/usr/local/bin/python3
print("Content-Type: text/html") #헤더(Header)
print()
print('''<!doctype html>
<html>
<head>
웹브라우저가 웹서버에 요청할 때
웹서버는 웹페이지를 응하면서
이 웹페이지가 어떤 데이터인지를 헤더가 알려준다.
html이라는 컨텐츠가 있으면 그 컨텐츠를 설명하는 것이다.
헤더가 끝난 다음에는 한 줄을 띄어야 한다.
print()문만 쓰면 한 줄을 띄운다라는 뜻이 된다.
////////////////////////////////////////////////////////////
7:36초에 이 문제를 해결하기 위해선 줄바꿈이 될 때 역슬래쉬(\)를 앞에다 붙여주면
모든 행에 역 슬래쉬를 붙여주면 되는데
번거롭기 때문에 독스트링을 이용한다.
독스트링을 이용하면 여러행에 문자를 특별한 처리 없이 다룰수가 있게 된다.
7강 (활용) URL query string을 가져오는 방법
#!/usr/local/bin/python3
print("Content-Type: text/html")
print()
import cgi
form = cgi.FieldStorage()
pageId = form["id"].value
print('''<!doctype html>
<html>
<head>
<title>WEB1 - Welcome</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="index.py">WEB</a></h1>
<ol>
<li><a href="index.py?id=HTML">HTML</a></li>
<li><a href="index.py?id=CSS">CSS</a></li>
<li><a href="index.py?id=JavaScript">JavaScript</a></li>
</ol>
<h2>{title}</h2>
<p>The World Wide Web (abbreviated WWW or the Web) is an information space where documents and other web resources are identified by Uniform Resource Locators (URLs), interlinked by hypertext links, and can be accessed via the Internet.[1] English scientist Tim Berners-Lee invented the World Wide Web in 1989. He wrote the first web browser computer program in 1990 while employed at CERN in Switzerland.[2][3] The Web browser was released outside of CERN in 1991, first to other research institutions starting in January 1991 and to the general public on the Internet in August 1991.
</p>
</body>
</html>
'''.format(title=pageId))
웹페이지에 있는 ?id=html의 id의 뒤쪽의 값이 코드 상으로 봤을 때
포멧의 title의 입력값에 들어오도록 하면
나머지는 알아서 될 것이다.
?id=html
?뒤쪽은 query string(질의 문자) 또는 url파라미터라고 부른다.
'id값이 html인 웹 페이지를 질의합니다.'라는 것이다.
그렇다면 어떻게 cgi라는 방식을 이용해서 쿼리스트링 값을 파이썬의 방식으로 알아낼 수 잇을까?
Import cgi
cgi라는 모듈을 사용하겠다고 파이썬에게 알려준 것.
cgi라는 모듈 안에는 우리가 cgi를 이용해서 프로그래밍을 하는데 필요한
여러가지 도구들이 들어있다.
form = cgi.FieldStorage()
pageId = form["id"].value
8강 (활용) CGI 소개
여러가지 웹서버와 여러가지 언어들이 상호간에 쉽게 연동하기 위해서는
둘 사이에 어떤 표준화된 약속이 필요하다
바로 그 약속이 CGI(common gateway interface)라는 것이다.
'Python > Today I learned' 카테고리의 다른 글
TIL#06 생활코딩 Python 리스트(list),컨테이너들,반복문 (0) | 2021.05.12 |
---|---|
TIL#05 생활코딩 Python 12~13강 조건에 반응하는 앱 만들기,파일제어와 본문기능 구현 (0) | 2021.05.12 |
TIL#04 생활코딩 Python 제어문,Boolean,조건문과 논리연산자 (0) | 2021.05.12 |
TIL#02 생활코딩 Python 데이터타입-문자,숫자 / 포멧팅 (0) | 2021.05.11 |
TIL#01 생활코딩 Python 수업소개와 실습환경구축 (0) | 2021.05.11 |