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. Avatar
    egoing 선생님, 혹시 한글로 작성하면 오류가 많아서 일부러 수업 진행하실때도 한글로는 작성을 안하시는건가요?
    한글로 작성을 하니까 인코딩 오류가 계속 나네요
  2. 김코딩
    저도 이 오류 났었는데 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 자세히 보기