WEB2 - Python

활용 - 홈페이지를 CGI로 구현

수업소개

이 수업에서는 CGI로 홈페이지를 출력하는 가장 간단한 방법을 살펴봅니다. 

 

 

강의

 

 

소스코드

index.py

#!/usr/local/bin/python3
print("Content-Type: text/html")
print()
print('''<!doctype html>
<html>
<head>
  <title>WEB1 - Welcome</title>
  <meta charset="utf-8">
</head>
<body>
  <h1><a href="index.html">WEB</a></h1>
  <ol>
    <li><a href="1.html">HTML</a></li>
    <li><a href="2.html">CSS</a></li>
    <li><a href="3.html">JavaScript</a></li>
  </ol>
  <h2>WEB</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>
''')

 

댓글

댓글 본문
작성자
비밀번호
  1. Avatar
    utf-8 대신 euc-kr로 설정하시면 한글이 출력됩니다.
    검색을 해보니 이것도 만사해결책은 아니랍니다. 참고하세요
  2. 윤이
    #!C:\Python27\python.exe

    윈도우 에서는 경로 설정 후 해결됐숩니다.
  3. 논곰
    저도 그러네요 한글이 포함될경우 Utf-8로 설정해놔도 에러가 뜨네요
    대화보기
    • 쿠쿠
      print(''' ''') 의 내용에 한글이 포함되면 에러가 발생하네요
    • ㅇㅇ
      음 쉬뱅이 그런거군요..
    • PassionOfStudy
      2018-03-27 - 2일차_세 번째 수강완료!

      오~ 처음으로 Python으로 만든 웹페이지 신기하네요.
    • 정병성
      어제 말씀드린 문제 찾았습니다... ㅠㅠ 다른 문제는 아니었고 ... windows 환경인데도 불구하고
      #/Bitnami/apache2/htdocs/syntax
      print("Content-Type: text/html")
      print()
      print("hlello wrold")
      리눅스 환경처럼 경로를 적으니 드디어 코드가 아닌 코드 실행화면이 출력이되더군요 ㅠㅠ 늘 상세한 답변감사합니다 ㅠㅠ 당연히 에러 로그는 확인했습니다. 에러 로그가 나오지 않아서 이고잉님이 강의에서 설명하신대로
      리로드 시켜서 확인도 해봤으나 에러는 확인이 되지않았습니다. 아파치 서버 매니저에서도 에러로그를 보았으나.. 없었네요ㅠㅠ

      저처럼 윈도우 환경에서도 .py 파일이 들어가있는 폴더를 명시해주어야하는 이유가 따로있는건가요 ? 구글링 해도 찾기가 힘드네요 .. Why do I have to put a directory folder name on atom in windows , How to exec .py file on windows system.. 등등 혹시 환경변수 문제인거같아 구글에서 다른 글들도 보았으나 ... 파이썬 오류이면 프롬프트 창에서 python 이란명령어가 안되어야 한다고 하는데 굉장히 잘되더군요 ㅠㅠ

      왜 윈도우 환경임에도 불구하고path 를 명시해주어야할까요 ?
    • egoing
      우선 마지막에 프린트 문을 헬로우월드 위로 올리셔야 해요~ 그리고 이런 문제가 있을 때는 에러로그를 꼼꼼히 확인해보셔요 :)
      대화보기
      • 정병성
        #!python
        print("Content-Type: text/html")

        print("hello world")
        print('')

        어제까지만 해도 잘 작동하던 파이썬 코드가 에러 로그에도 기록없이 모든 페이지상에서 말 그대로 코드로 출력이
        됩니다. 예를들어 위 코드를 실행하면 hello world 가 출력되어야 하나 현재는 코드 전문이 출력이되어버리네요 ㅠㅠ 이틀전에 드린 질문 확인하려고 실행시키고 cgi 임포트 하는거 하고있는데 .. 하.. 갈수록 계속 막히기만 하네요 되게 쉬운거일텐데 .. 저는문제를 못찾겠어요 ㅠ
      • hsird2@gmail.com
        이고잉님은 줄바꿈을 \n 대신에, print()을 사용하여, 줄바꿈, 다시말해, 뒤에 <!doctype html>을 줄처음으로 오게하여, 뒷문장부터는 HTML형식이라는것은 알려줬네요...

        제 짧은 소견으로는 \n(통상적인 방법?)도 되고, print()를 사용하여, 파이썬파일에서 통상쓰는 방법으로도 사용하신것 같습니다.
        어쨌튼..외부에서 CGI를 이용하여, 웹서버내의 파이썬을 이용하여, 웹브라우저에서 파이썬을 접근하기 용이하게 하는 방법인것 같습니다...
        대화보기
        • 마샤
          \n 쓰는 대신에 print()를 넣으면 잘 동작하는 군요.... 강의를 볼 때 더 집중해야 겠다는 걸 배웠습니다
          대화보기
          • 마샤
            혹시 같은 문제 겪고 계신 분 있을까 공유드립니다

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

            저 역시 맥을 쓰고 있어서 맨 윗칸은 저렇게 썼고 잘 동작했습니다.
            문제는 text/html 부분인데, 선생님과는 다르게 뒷칸에 \n(\는 백슬래시)를 안 쓰면 저는 여전히 에러 메시지가 뜨면서 hello world가 안 뜹니다.

            따라서 이렇게 쓰면 저는 잘 동작했습니다.

            #!/usr/local/bin/python3
            print("Content-Type: text/html; charset=UTF-8\n")

            charset=UTF-8는 써도 안 써도 동작합니다. 중요한 건 \n의 유무인 것 같네요.
          graphittie 자세히 보기