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. 꽃게
    저도 동일한 오류 겪었습니다. 혹시나 도움이 될까하여 적습니다

    저장경로 문제였습니다.
    index.py 파일의 저장위치를
    C:\Bitnami\wampstack-7.1.23-0\apache2\htdocs\syntax 가 아닌
    C:\Bitnami\wampstack-7.1.23-0\apache2\htdocs 로 변경해주니 오류가 해결되었습니다.
    대화보기
    • 문창민
      [Wed Nov 07 16:57:32.583993 2018] [cgi:error] [pid 2948:tid 1040] [client 127.0.0.1:49483] AH01215: Traceback (most recent call last):\r: C:/Bitnami/wampstack-7.1.23-0/apache2/htdocs/Index.py

      [Wed Nov 07 16:57:32.584994 2018] [cgi:error] [pid 2948:tid 1040] [client 127.0.0.1:49483] AH01215: File "C:/Bitnami/wampstack-7.1.23-0/apache2/htdocs/Index.py", line 71, in <module>\r: C:/Bitnami/wampstack-7.1.23-0/apache2/htdocs/Index.py

      [Wed Nov 07 16:57:32.584994 2018] [cgi:error] [pid 2948:tid 1040] [client 127.0.0.1:49483] AH01215: """)\r: C:/Bitnami/wampstack-7.1.23-0/apache2/htdocs/Index.py

      [Wed Nov 07 16:57:32.584994 2018] [cgi:error] [pid 2948:tid 1040] [client 127.0.0.1:49483] AH01215: UnicodeEncodeError: 'cp949' codec can't encode character '\\u5f37' in position 462: illegal multibyte sequence\r: C:/Bitnami/wampstack-7.1.23-0/apache2/htdocs/Index.py
      여기에 있는 어떤 오류에도 해당하지가 않는거 같은데
      그냥 print("sdfsdf") 이렇게 하면 웹페이지에 출력되는데
      이상하게 제가 만들었던 홈페이지를 넣으면 안나오고 그냥 하얀화면이에요..
      진짜 파이썬은 한강한강마다 오류때문에 지쳐서 못듣겟네요...
      그냥 다른거 할랍니다...
    • 윈도우의 경우
      http://127.0.0.1/index.py
    • 퍼즐하는피글렛
      어제 cgi연동에서 웹 리로딩했을 때 코드가 그대로 적혀나오는 것이 아니라, 4.0이 나오는것 까지 확인했는데...

      오늘 실제 파일경로로
      코딩했는데
      hello world가 아니라 코딩전문인

      #!C:\Users\shiny\AppData\Local\Programs\Python\Python37-32\python.exe
      print("Content-Type: text/html; charset=UTF-8")
      print('')
      print("hello world")

      이게나오네요..
      파일의 실제경로 말고 #!python 으로도 해보고
      아래 리플처럼 \n도 추가해보고...
      다했는데 안돼요 ㅠㅠㅠ
    • 공부하자
      에러 찾으면 (9)Bad file descriptor 이게 나오는데 어떤식으로 해결해야하나요...?ㅠㅠ
    • 구아타리
      /usr/local/bin/python3


      /usr/bin/env python3
      의 차이가 무엇인가요?

      전자는 실행되고 후자는 실행이 안되네요. 스트링하고 넘버할 때는 잘 됬는데.
    • 열공
      윈도우에서 안되시는 분은 아래 링크 참고하세요.

      한참 해매다가 윗쪽 셋팅을 다 안해서 생기는 문제인 걸 확인했네요

      https://opentutorials.org......789
    • 열공
      윈도우에서 안되면 아래와 같이 코딩을 작성해 보세요

      #!Python
      print("Content-Type: text/html; charset=UTF-8\n")
      print('')
      print("hello world")

      아래와 같이 해도 안되면 설정 문제로

      https://opentutorials.org......789 <- 3번째 동영상 및 하단 내용 참고해서 셋팅 필요합니다.
    • Avatar
      utf-8 대신 euc-kr로 설정하시면 한글이 출력됩니다.
      검색을 해보니 이것도 만사해결책은 아니랍니다. 참고하세요
    • 윤이
      #!C:\Python27\python.exe

      윈도우 에서는 경로 설정 후 해결됐숩니다.
    • 논곰
      저도 그러네요 한글이 포함될경우 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 자세히 보기