WEB2 - Python

활용 - URL query string을 가져오는 방법

수업소개

URL의 query string을 입력 값으로 웹애플리케이션으로 끌어오는 방법을 소개합니다. 

 

 

강의

이 수업의 예제에서는 접속 URL에 ?id가 포함되어 있어야 오류없이 동작합니다. 

 

 

소스코드

index.py

변경사항

#!/usr/local/bin/python3
print("Content-Type: text/html")
print()
import cgi
form = cgi.FieldStorage()
pageId = form["id"].value
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>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. 레이까뇽
    감사합니다.
    대화보기
    • 김유현
      윈도우 사용자분들 중 밑에 있는 방법들을 다 사용해봐도 흰화면이 나온다면, <style>태그가 있는지 확인해보세요. 이 태그를 삭제했을 때 해결이 되는 경우도 있습니다.
    • 정규현
      안녕하세요
      파이썬을 시작한 파린이 입니다..
      window 환경에서 흰화면을 떳다면,
      개인적인 생각으로는 동영상에서 나온걸 차례대로 실행을 안하신거 같아요!!
      위 코드만 붙이고, #!/usr/local/bin/python3 -> #!python 으로만 바꾸셨다면 흰화면이 맞습니다!
      아래 써 주신대로 id 값을 주소에 넣어보세요!!

      http://127.0.0.1......TML
    • 김민석
      안녕하세요.
      이고잉님 강의 듣고 있는 파이썬 초보입니다.
      요즘 파이썬 강의를 듣고 있다가 저도 다른분들처럼 window 환경에서 강의를 듣고 있는데 페이지가 하얗게 넘어가는 부분에서 막혀서 고생하다가 구글링해서 해결방법을 찾아봤는데요.
      일단 window 환경에서는 라이브러리를 하나 더 추가해야합니다.
      import cgi,cgitb
      cgitb.enable() #for debegygging
      form = cgi.FieldStorage()
      pageId = form.getvalue('id')
      이렇게 하니까 화면이 표시 되더라구요. 보고 도움이 됐으면 좋겠습니다!
    • 김형욱
      안녕하세요! 저도 강의를 듣고 있는 왕초보입니다.
      다름이 아니라
      windows 환경에서 cgi 부분을 입력하고 나서 페이지가 새하얗게 되어버리고 더이상 되지 않아 질문을 남기게 되었습니다.
      import cgi
      form = cgi.FieldStorage()
      pageId = form["id"].value << cgi import 하기전에는 모두 잘 작동하였고 GET 방식 url변화까지 확인하였으나 cgi 추가후.. 실행이 안됩니다. 어떠한 이유가있을까요 ? ...
      윈도우와 맥은 다르게 해야 하나요? ^^;
    • Ekbole
      egoing님께서 붙여주신 위에 참조 입력값을 atom에 붙여넣기 하면 잘됩니다. (window사용자분은첫줄 #!다음에 자신의 컴퓨터에 python 설치된경로를 붙여넣기 해 주시면 나옵니다.) 대신 github에 업로드 하실때는 강의대로 #!python이나 입력값 안넣어도 윈도우에선 잘나옵니다.
      저의경우 지금껏 web1에서 강의해주신 파일을 고대로 복사해서 이번 강의 내용부분만을 수정한뒤 홈페이지를 화면에 띄우면 새하얀 창만 나오고, error.log에는 원인이 안나옵니다. 저의경우 (구글 아날리스틱, 쳐크, 디스커스 포함해서 Format 문을 넣으면 오류가 난 경우였습니다. (구글 아날리스틱,쳐크 디스커스 관련 입력값을 지우고 나니 format문 잘되네요. 그리고 <h1><a href="index.py">WEB</a></h1> 를 py?id=WEB이라고 안고쳐도
      웹주소창에는 localhost/index.py?id=WEB이라고 표시해주네요;;; 뭔가 오류가 난거같은데 시간이 지나면 될때도있고 안될때도있군요.... 기계는 거짓말을 안하는데 이건 지식이 부족해서 몇시간동안 찾아봐도 오류를 알지못했습니다
    • Yesugei
      기존 영상에서 연습했던 파일들을 따로 폴더에 정리하시고 나면 제대로 나올겁니다.
      대화보기
      • Dong-In Andy Kang
        두 가지 질문이 있는데요
        1. 왜 저는 위 코드를 넣고 돌리면 Hello world가 뜨는 걸까요?
        2. logs 폴더 안에 있는 error_log 파일에 아무런 기록이 없다면 왜 그런 걸까요?
      • Avatar
        egoing 선생님, 혹시 한글로 작성하면 오류가 많아서 일부러 수업 진행하실때도 한글로는 작성을 안하시는건가요?
        한글로 작성을 하니까 인코딩 오류가 계속 나네요
      • 김코딩
        저도 이 오류 났었는데 url에 id를 입력안해서 나는 오류였습니다. 위에 코드를 보면 id가 없을 경우 처리가 아직 안되있어서 그런거 같습니다. http://localhost......ipt 이런식으로 뒤에 id값을 줘보면 될거 같습니다.
        대화보기
        • egoing
          제작한 후에 시간이 조금 지나서 기억이 나지 않는데요. 그렇게 생각하시는 부분을 조금만 더 자세히 알려주시면 정정하겠습니다!
          대화보기
          • beam1100@naver.com
            안녕하십니까? 이고잉 선생님.
            다름이 아니라 format 함수를 이용한 문자열 포매팅 부분에 대한 설명이 이전 강의에서 빠진것 같습니다.
            항상 많은 가르침 주셔서 감사합니다.
          • ym kim
            저도 오류나서 한참을 들여다보다가
            주소에 id값을 넣어야 동작한다는 것을 깨달았네요^^;;
            대화보기
            • PassionOfStudy
              2018-03-27 - 2일차_네 번째 수강완료!

              HTML에서 배운 id값을 가져오는 방법과 Python을 이용하여 id값을 가져오는 것의 차이를 알게되었습니다.
              비교해서 공부하니 더 재미있습니다. ^_^
            • egoing
              주소에 혹시 id 값이 없는거 아닐까요?
              대화보기
              • skyglove
                감사합니다.
                저도 잘 되다가 강의 마지막 부분에서 index.html을 index.py로 고친 후부터는 아래 분과 같은 오류가 생깁니다. 에러 로그를 보니 이렇게 뜨는데 무슨 뜻인지요..

                [Mon Mar 26 02:53:36.913027 2018] [cgi:error] [pid 69880:tid 1268] [client 127.0.0.1:63194] AH01215: Traceback (most recent call last):\r: C:/Bitnami/wampstack-7.2.3-0/apache2/htdocs/index.py
                [Mon Mar 26 02:53:36.913027 2018] [cgi:error] [pid 69880:tid 1268] [client 127.0.0.1:63194] AH01215: File "C:/Bitnami/wampstack-7.2.3-0/apache2/htdocs/index.py", line 6, in <module>\r: C:/Bitnami/wampstack-7.2.3-0/apache2/htdocs/index.py
                [Mon Mar 26 02:53:36.913027 2018] [cgi:error] [pid 69880:tid 1268] [client 127.0.0.1:63194] AH01215: pageId = form["id"].value\r: C:/Bitnami/wampstack-7.2.3-0/apache2/htdocs/index.py
                [Mon Mar 26 02:53:36.913027 2018] [cgi:error] [pid 69880:tid 1268] [client 127.0.0.1:63194] AH01215: File "C:\\Program Files (x86)\\Python36-32\\lib\\cgi.py", line 604, in __getitem__\r: C:/Bitnami/wampstack-7.2.3-0/apache2/htdocs/index.py
                [Mon Mar 26 02:53:36.913027 2018] [cgi:error] [pid 69880:tid 1268] [client 127.0.0.1:63194] AH01215: raise KeyError(key)\r: C:/Bitnami/wampstack-7.2.3-0/apache2/htdocs/index.py
                [Mon Mar 26 02:53:36.913027 2018] [cgi:error] [pid 69880:tid 1268] [client 127.0.0.1:63194] AH01215: KeyError: 'id'\r: C:/Bitnami/wampstack-7.2.3-0/apache2/htdocs/index.py
              • egoing
                error log 확인해 보셨을까요?
                대화보기
                • 정병성
                  늘 좋은 강의 감사합니다. 다름이 아니라
                  windows 환경에서 밑의 코드와 같이 하였으나 페이지가 새하얗게 되어버리고 더이상 되지 않아 질문을 남기게 되었습니다.
                  import cgi
                  form = cgi.FieldStorage()
                  pageId = form["id"].value << cgi import 하기전에는 모두 잘 작동하였고 GET 방식 url변화까지 확인하였으나 cgi 추가후.. 실행이 안됩니다. 어떠한 이유가있을까요 ? ...


                  #!python
                  print("content-type:text/html; charset=utf-8\n")
                  import cgi
                  form = cgi.FieldStorage()
                  pageId = form["id"].value

                  print('''<!doctype html>
                  <html>
                  <head>
                  <title>WEB1 - html</title>
                  <meta charset = "utf-8">
                  </head>
                  <body>
                  <h1><a = href = " index.html">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><strong>{title}</strong></h2>
                  <br></br>
                  Hypertext Markup Language (HTML) is the standard markup language for creating web pages and web applications. With Cascading Style Sheets (CSS) and JavaScript, it forms a triad of cornerstone technologies for the World Wide Web.[3] Web browsers receive HTML documents from a web server or from local storage and render them into multimedia web pages. HTML describes the structure of a web page semantically and originally included cues for the appearance of the document.

                  HTML elements are the building blocks of HTML pages. With HTML constructs, images and other objects, such as interactive forms, may be embedded into the rendered page. It provides a means to create structured documents by denoting structural semantics for text such as headings, paragraphs, lists, links, quotes and other items. HTML elements are delineated by tags, written using angle brackets. Tags such as and introduce content into the page directly. Others such as <p>...</p> surround and provide information about document text and may include other tags as sub-elements. Browsers do not display the HTML tags, but use them to interpret the content of the page.

                  HTML can embed programs written in a scripting language such as JavaScript which affect the behavior and content of web pages. Inclusion of CSS defines the look and layout of content. The World Wide Web Consortium (W3C), maintainer of both the HTML and the CSS standards, has encouraged the use of CSS over explicit presentational HTML since 1997.[4]

                  </body>
                  </html>
                  '''.format(title=pageId))
                버전 관리
                egoing
                현재 버전
                선택 버전
                graphittie 자세히 보기