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. jeisyoon
    2021.04.08 홈페이지를 CGI로 구현 - OK
  2. windows는 권한을 가리지 않는다. 다른 운영체제처럼 execute할 필요가 없다.
    윈도우 환경은 여기부터 보면 됨. https://youtu.be......182

    ' AH02101: Failed to read cgi file ' 오류 : shebang 즉, #!python 넣으면 됨.
    ' End of script output before headers ' 오류 : 강의처럼 header 추가

    윈도우 환경은 어디부터 해야하는지 조마조마하면서 했네요 ㅋㅋ
  3. Americano
    파일 위치를 못찾는것 같은데 htdocs 폴더에 해당 파일이 있는지 확인해보면 될것 같습니다.
    이름이 변경되거나 위치가 잘못되었을때 그게 뜨는것 같아요
    대화보기
    • Americano
      21.02.27
    • ㅎㅎㅎㅎ
      윈도우입니다. web1부터 계속 봐왔는데 [cgi:error] [pid 3900:tid 1172] [client ::1:7600] AH02811: script not found or unable to stat: C:/Bitnami/wampstack-8.0.1-0/apache2/htdocs/index.py 몇번을 시도해도 이러한 오류만 뜹니다, 해결방법이 있을까요?
    • 박민지
      2021.01.11
    • 210101
    • Sgoing
      맨 앞줄에 #!python 말고 #!파이썬 경로 하면 되던데요?
      대화보기
      • #!python 으로 하셔야해요
        대화보기
        • cocoha11
          [Wed Nov 04 15:46:05.007755 2020] [win32:error] [pid 23988:tid 1320] (70014)End of file found: [client 127.0.0.1:60567] AH02101: Failed to read cgi file C:/Bitnami/wampstack-7.4.11-0/apache2/htdocs/index.py for testing
          [Wed Nov 04 15:46:05.007755 2020] [cgi:error] [pid 23988:tid 1320] (70014)End of file found: [client 127.0.0.1:60567] AH01222: don't know how to spawn child process: C:/Bitnami/wampstack-7.4.11-0/apache2/htdocs/index.py

          window에서 계속 에러떠요 저같은분은 안 계신 것 같은데, 혹시 아시는 분 계시면 도와주세요
        • 2020.10.12
        • dagel0102
          20.10.09
        • cgoing
          cgoing / 2020.10.01
        • jiyeong
          2020.08.31.
        • OneJae EE
          20.04.29 수 / 37세 비전공자 / 완료
        • 악어
          20200308 완료
        • 스티븐잡숴
          완료
        • new_3
          완료 - codeanywhere에서는 리눅스 환경이라
          맨위의 shebang을 #!/usr/bin/python3로 바꿔야되네요
          주소도 localhost가 아닌
          https://web2-python-.....codeanyapp.com/index.py
          여기로요
        • 윤희철
          UnicodeEncodeError: 'cp949' codec can't encode character '\\u2013' in position 456: illegal multibyte sequence\r:
          에러는 이렇게 뜹니다ㅠ
          대화보기
          • 윤희철
            localhost/index.py 해서 오류은뜨고 파이썬이랑 아파치랑 연동되는것 까지는 왔습니다(print(1+2)문 적고 새로고침하면 3니다.) 근데 index.html에 있는 html자료 복붙해서 print문에 복사(''' '''따옴표 3개까지했어요)하고 localhost/index.py에서 새로고침하면 백지화면이 뜹니다 ㅠㅠ egoing님이 한것과 차이가 없는것 같은데 뭐가 문제인지 모르겠네요.. 도와주세요 ㅠ
          • asdf
            에러자체가 안되고 html 파일로만 반환되요
          • apldeap
            12/22
          • 보는이
            처음엔 몰랐는데 코드치는게 계산된게 아니고 친것 그대로 나오면 설치및 연동 강의에 있는 동영상 단계 여러개중 어딘가를 빠뜨렸거나 잘못해서 그러는 거더라고요
          • xuanxi
            20191125
          • 쑤우
            수강완료. 감사합니다~
          • 굼벵이
            완료
          • 20191003 Ted 완료!
          • 솜브라온라인
            어째서인지는 모르겠지만 저는 왼쪽에 웹 페이지 띄웠을 때 localhost로는 안되어서 127.0.0.1/syntax/index.py 로 하니 되더라구요
            강의 감사합니다
          • yssss
            감사합니다!
          • Inyeong Gim
            파이썬 정복 고고!
          • 이제 알았어요
            말씀 주신 대로 print('') 안의 출력 내용에 한글이 있을때 아래를 넣어 줘야 했습니다.

            import sys
            import codecs
            sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
          • 감사합니다
            위 방법대로 했더니 윈도우에서도 한글이 잘 작동합니다
            대화보기
            • 하하
              (""" 이하에 한글이 있는 경우, 한글 출력이 되지 않을 때 - 리눅스 기준으로
              https://blog.ayukawa.kr......342 링크 글에 '한글 출력이 되지 않을 때' 항목을 참고하시면 됩니다.
              저는 윗줄에
              #!/usr/bin/python3
              #-*- coding: utf-8 -*-
              import sys
              import codecs
              import cgi

              import cgitb
              cgitb.enable()

              sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

              print("content-type:text/html; charset=utf-8\r\n")

              그리고 프린트 블라블라 하니까 되더라구요
            • 항상 강의 잘 듣고 있습니다 에고잉님
              그리고 댓글에 있는 대로 한글 깨질때 가장 상위의 charset을 euc-kr 로 바꾸니까 되네요 근데 밑의 meta charset은 안바꿔도 되네요...왤까용??? 암튼 감사합니당ㅠㅠㅠ
            • shadow0116@naver.com
              index.py가 윈도우에서 실행하고 있는데 안 되서 찾아보니...
              이렇게 하면 되네요...
              #!C:\Program Files (x86)\Python37-32\python.exe
              print("content-type: text/html; charset=utf-8\n")
              print()
              print('''<!doctype html>
              <html>
              <head>
              <title>WEB1 - Welcome</title>
              <meta charset="euc-kr">
              </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>
              ''')
            • Seankim
              아하, 웹에서 실행하기
            • 꽃게
              저도 동일한 오류 겪었습니다. 혹시나 도움이 될까하여 적습니다

              저장경로 문제였습니다.
              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") 이렇게 하면 웹페이지에 출력되는데
                이상하게 제가 만들었던 홈페이지를 넣으면 안나오고 그냥 하얀화면이에요..
                진짜 파이썬은 한강한강마다 오류때문에 지쳐서 못듣겟네요...
                그냥 다른거 할랍니다...
              • cloky
                윈도우의 경우
                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으로 만든 웹페이지 신기하네요.
                graphittie 자세히 보기