WEB2 - Python

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

수업소개

반복문과 파일목록을 가져오는 기능을 활용해서 글목록 기능을 구현하는 방법을 살펴봅니다. 

 

 

강의

 

 

소스코드 

변경사항

index.py

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

files = os.listdir('data')
listStr = ''
for item in files:
    listStr = listStr + '<li><a href="index.py?id={name}">{name}</a></li>'.format(name=item)
    
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>
    {listStr}
  </ol>
  <h2>{title}</h2>
  <p>{desc}</p>
</body>
</html>
'''.format(title=pageId, desc=description, listStr=listStr))

 

댓글

댓글 본문
작성자
비밀번호
  1. Lethesriver
    그렇게 쓰면,
    반복문이 돌면서 listStr 에 값이 계속 추가시키는 게 아니라
    값을 계속 갱신시키게 되면서
    반복문 중 맨 마지막 값만 listStr에 저장되겠죠
    대화보기
    • 또또0330
      물개 박수를 치면서 보고 있습니다.!!!! 신나네요!!
    • gogo0920
      Description을 가져오는 문구에서 error가 발생하는데 혹시 저 code 그대로 description을 window에서 가져왔을때 error가 생기는 분 없으신가요?

      입력: description = open('data/'+pageID, 'r').read()

      11 form = cgi.FieldStorage()
      12 pageId = form.getvalue('id')
      => 13 description = open('data/'+pageID, 'r').read()
      14 print('''<!doctype html>
      15 <html>
      description undefined, builtin open = <built-in function open>, pageID undefined
      NameError: name 'pageID' is not defined
      args = ("name 'pageID' is not defined",)
      with_traceback = <built-in method with_traceback of NameError object>
    • powerwithlove
      ^^
    • SongSong
      안녕하세요~
      아톰 에디터에서 파일 추가하면 알파벳 순서대로 저장이 돼서
      그 순서대로 화면에 표시 되는데
      그 순서를 임의로 변경할 수 있는 방법이 혹시 있을까요 ?
    • goyacommae
      아톰 에디터 관련 질문입니다. html태그 안에 있는 파이썬 언어 색이 별도로 표시되는건 어떤 패키지 기능인가요?
    • 만일 listStr = listStr + 를 하지 않으면 listStr에는 맨 마지막 item이 할당 되어 마지막 한개만 표시됩니다.
      의문이 생기면 바로 직접 테스트해보면 스스로 알게 됩니다.
    • illliilllliillliii
      감사합니다 ~
    • novice
      프로그래밍 처음 배우는 노비스입니다. 강의 잘 듣고 있습니다. 항상 감사합니다.^^
      listStr = listStr + ~~~~
      이게 왜 필요한지 이해를 못하고 있습니다. @.@
      그냥 listStr ='<li><a href="index.py?id={name}</a></li>'.format(name=item)
      이렇게 하면 안되는건가요?
    • egoing
      초기화라고 생각하시면 될 것 같습니다.
      대화보기
      • 굿잡
        내용을 비운 변수를 선언한거 아닌가요?
      • 마샤
        listStr = ''

        작은 따옴표 두 개는 왜 붙이는 거죠?
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기