
12강 (활용) 조건에 반응하는 앱 만들기
조건문을 활용해서 URL query string에 id 값이 있는지 여부에 따라서 다르게 동작하는 웹앱을 구현해보자.
if 'id' in form: #form안에 id라는 이름이 있느냐?
pageId = form["id"].value
else:
pageId = 'Welcome'
13강 (활용) 파일제어와 본문기능 구현
data라는 폴더를 만들고 거기에 html,css,javascript파일을 만든다.
그 다음 파일을 어떻게 파이썬으로 제어할 수 있는가를 살펴보자.
if 'id' in form:
pageId = form["id"].value
description = open('data/'+pageId, 'r').read()
else:
pageId = 'Welcome'
description = 'Hello, web'
pageid가 html이면 data/html이 된다.
r은 읽기모드
read()는 읽는다.
#!/usr/local/bin/python3
print("Content-Type: text/html")
print()
import cgi
form = cgi.FieldStorage()
if 'id' in form:
pageId = form["id"].value
description = open('data/'+pageId, 'r').read()
else:
pageId = 'Welcome'
description = 'Hello, web'
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>
<li><a href="index.py?id=Python">Python</a></li>
</ol>
<h2>{title}</h2>
<p>{desc}</p>
</body>
</html>
'''.format(title=pageId, desc=description))
우리가 만든 웹사이트는 html로만 만든 사이트와는 어떤 차이가 있을까?
html로만 만든 웹사이트는 웹페이지가 1억개면 1억개의 html파일이 있다.
그 얘기는 파일을 수정하려면 1억개의 html코드를 다 바꿔야하고 1억개의 html 코드에는
중복되는 코드들이 엄청나게 많다.
우리가 만든 애플리케이션은 html코드는 index.py에 들어있고
실제 데이터는 데이터 디렉토리에 있는 파일에 깔끔하게 저장되어 있다.
그 얘기는 우리도 만약에 1억개의 웹페이지가 있는 사이트였다면 데이터 디렉토리 안에는
1억개의 파일이 있겠지만 그 1억개의 파일들에는 중복되는 html코드가 들어가있지 않기 때문에
용량을 획기적으로 줄일 수 있다.
그리고 index.py안의 html의 내용을 수정하면 1억개의 웹페이지에 반영이 된다.
'Python > Today I learned' 카테고리의 다른 글
| TIL#07 생활코딩 Python 18~22강 글목록 구현,form,수정,삭제 (0) | 2021.05.12 |
|---|---|
| TIL#06 생활코딩 Python 리스트(list),컨테이너들,반복문 (0) | 2021.05.12 |
| TIL#04 생활코딩 Python 제어문,Boolean,조건문과 논리연산자 (0) | 2021.05.12 |
| TIL#03 생활코딩 Python 6~8강 CGI,URL query string (0) | 2021.05.11 |
| TIL#02 생활코딩 Python 데이터타입-문자,숫자 / 포멧팅 (0) | 2021.05.11 |