python) 파일 제어를 통한 앱의 기능 구현

jun_legend·2021년 5월 12일
0

Python-Web Application

목록 보기
4/11
post-thumbnail

"파일 제어를 통한 앱의 기능 구현"

#!/usr/local/bin/python3
print("Content-Type: text/html")
print()

import cgi
form = cgi.FieldStorage()

if "id" in form:
  pageId = form["id"].value
else:
  pageId = "welcome"

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"></a>CSS</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))

위와 같은 웹 페이지 내 글의 본문 부분을 파일 제어를 통해 구현할 수 있다.


1) 먼저 본문 내용을 가진 파일을 보관할 임의의 디렉토리 생성한다.

(여기서는 index.py 파일이 있는 htdocs 디렉토리 안에 'data' 라는 디렉토리 생성)


2) data 디렉토리 내 HTML, CSS, JavaScript 각각의 본문 내용을 담은

HTML, CSS, JavaScript 라는 이름을 가진 (텍스트)파일을 생성한다.


3) 파일을 열고 읽을 수 있는 코드를 검색하면 아래와 같은 코드를 확인할 수 있다.

변수 = open(파일, 'r')
변수 = 파일.read( )

  • 현재 실행중인 파일에서 읽으려는 파일의 경로가
    현재 실행중인 파일의 경로와 다르면 파일 경로도 함께 작성해야한다.

4) 파일을 열고 읽을 수 있는 코드를 조건문 코드에 적용한다.

if "id" in form:
  pageId = form["id"].value
  변수 = open('data/'+pageId, 'r').read()
else:
  pageId = "welcome"
  변수 = 출력할 문구

참고)

'data/' 는 data 디렉토리 안에 있는 파일을 의미하고
pageId 는 id값을 의미하는 변수이므로

'data/'+pageId 는
data 디렉토리 내 파일명이 id값과 같은 파일을 의미한다.


5) 글의 본문 내용을 포매팅 코드에 맞게 치환시켜준다.

<p>{desc}</p>
</body>
</html>
'''.format(title = pageId, desc = description))

6) 최종코드는 아래와 같다.

#!/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>
  </ol>
  <h2>{title}</h2>
  <p>{desc}</p>
</body>
</html>
'''.format(title = pageId, desc = description))

이제 상단의 WEB 을 누르면
페이지 아래 위치한 본문에 Hello, web 이 출력되고

HTML과 CSS, JavaScript 를 누르면
각각의 id값이 파일명인 텍스트 파일에 저장된 내용이 본문에 출력된다.




[출처] 생활코딩 WEB2 - Python
https://opentutorials.org/module/3357

0개의 댓글