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억개의 웹페이지에 반영이 된다.

 

+ Recent posts