> 백엔드 개발 > 파이썬 튜토리얼 > PythonCGI 프로그래밍의 예제 튜토리얼 공유

PythonCGI 프로그래밍의 예제 튜토리얼 공유

零下一度
풀어 주다: 2017-05-19 13:08:41
원래의
2622명이 탐색했습니다.

지난주에도 계속해서 온라인으로 파이썬을 배우며 파이썬에서의 CGI 프로그래밍을 접하게 되었습니다. CGI의 공식 정의는 다음과 같습니다.

공통 게이트웨이인 CGI(Common Gateway Interface) 인터페이스는 HTTP 서버와 같은 서버에서 실행되는 프로그램으로 클라이언트 HTML 페이지에 인터페이스를 제공합니다. Linux

환경에 있지만 제 생각에는 구성 파일의 내용은 큰 변화가 있을 것이므로 땜질 여행을 시작했습니다. 개발을 위해 Windows를 사용하는 것은 실제로 함정이라는 것이 밝혀졌습니다.

온라인 학습 웹 사이트 Python CGI에 따르면 먼저 CGI 디렉터리를 설정하고 Apache 구성 파일

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
로그인 후 복사

에서 httpd.conf를 수정한 다음

httpd.conf 파일을 다음과 같이 수정합니다.

<Directory "/var/www/cgi-bin">
   AllowOverride None
   Options +ExecCGI
   Order allow,deny
   Allow from all</Directory>
로그인 후 복사

그런 다음 AddHandler에 .py 접미사를 추가하여 .py에 액세스할 수 있습니다. 종료 python 스크립트 파일:

이 모든 작업을 수행한 후 서버(Apache/Wamp)를 다시 시작하고 첫 번째 CGI 프로그램을 작성합니다. 코드는 다음과 같습니다. :

test1.py

#!D:\Python27\python # -*- coding: UTF-8 -*-print "Content-type:text/html\r\n\r\n"print &#39;<html>&#39;print &#39;<head>&#39;print &#39;<title>Hello Word - First CGI Program</title>&#39;print &#39;</head>&#39;print &#39;<body>&#39;print &#39;<h2>Hello Word! This is my first CGI program</h2>&#39;print &#39;</body>&#39;print &#39;</html>&#39;
로그인 후 복사
첫 번째 줄의 내용은 스크립트 해석기의 위치를 ​​지정합니다. 자신의 설치 경로에 따라 변경될 수 있습니다

그런 다음 브라우저 주소 표시줄에 http://localhost/cgi-bin/test1.py

<🎜를 입력하세요. > 그런 다음 브라우저 액세스에 다음 결과가 표시됩니다.

Hello Word! This is my first CGI program
로그인 후 복사
문제 없음

그런 다음 잠시만 기다려 주세요. 프로그램:

hello_get.py

#!D:\Python27\python# -*- coding: UTF-8 -*-# CGI处理模块import cgi, cgitb 
# 创建 FieldStorage 的实例化form = cgi.FieldStorage() # 获取数据first_name = form.getvalue(&#39;first_name&#39;)last_name  = form.getvalue(&#39;last_name&#39;)print "Content-type:text/html\r\n\r\n"print "<html>"print "<head>"print "<title>Hello - Second CGI Program</title>"print "</head>"print "<body>"print "<h2>Hello %s %s</h2>" % (first_name, last_name)print "</body>"print "</html>"
로그인 후 복사
localhost/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI

<를 입력하세요. 🎜>

브라우저에서 홈페이지에 나와있는대로

Hello ZARA ALI를 출력하지 않고 아래와 같은 오류 메시지가 나옵니다

그래서 의아해했는데, 구성환경도 똑같고 코드도 똑같더라구요. 그럼 뭐가 문제일까요? 결과는 모두 Linux.config 방식이었기 때문에 어쩔 수 없이 wamp를 다시 설치한 후 CGI 환경을 다시 구성한 후, 웹사이트에 있는 코드를

에디터에 복사했습니다. 그런 다음 브라우저에 다시 입력하세요.

http://localhost/cgi-bin/hello_get.py?first_name=ZARA&last_name=ALI
로그인 후 복사

결과는 여전히 위의 오류 프롬프트 문자열이므로 프롬프트를 자세히 살펴보았는데 대략 다음과 같습니다.

서버 내부 오류

서버에 내부 오류가 발생했거나 잘못된 구성으로 인해 요청을 완료할 수 없습니다.

이 오류와 처리 방법을 이메일로 서버 관리자에게 문의하세요. 이 오류가 발생하기 전에 수행해야 할 작업은

자세한 내용은 서버 오류 로그를 확인하세요

나는 서버를 잘못 구성했기 때문에 당황했을 때 갑자기 구성 파일을 수정하지 않았는데도 첫 번째 프로그램 test1이 올바르게 실행될 수 있다고 생각했습니다. 이 오류는 아무 것도 없는 것이 아닐까요? 구성 파일을 사용하여 test1의 첫 번째 줄에서 인터프리터 경로를 선언하는 문을 제거하고 다시 실행해 보십시오.


그래서 매우 안심이 됩니다. 이것이 제 추측을 확인해 주었기 때문입니다. 서버 구성과는 아무런 관련이 없습니다. 내 스크립트 파일에 오류가 있어서 서버가 요청에 응답할 수 없기 때문입니다. 이 경우 hello_get.py의 오류도 동일합니다. 그러면 문제가 훨씬 간단해집니다. 암호.

여기서 내 나쁜 습관에 대해 생각해 보고 싶습니다. 웹사이트에서 루틴을 실행하려고 할 때 항상 Ctrl C를 누른 다음 Ctrl V를 누릅니다. 복사하여 자신의 편집기에 붙여넣으세요. 간단한 프로그램은 괜찮지만, 코드 블록이 많은 복잡한 프로그램은 잘못된 들여쓰기 형식으로 인해 실행 오류가 발생합니다. Python에서는 이러한 문제가 특히 두드러집니다. 들여쓰기에 대한 요구 사항은 매우 엄격하므로 Python 프로그램을 자신의 프로그램에 복사하여 붙여넣어서는 안 됩니다. 들여쓰기를 제어하려면 코드별로 코드를 입력해야 합니다.

내가 이 말을 했을 때 사람들은 이미 내 hello_get.py 파일에서 오류를 봤을 것입니다. 사실 내가 직접 입력한 것이 아닙니다. , 이전에 온라인으로 복사를 시도한 적이 있습니다. C 언어 코드를 VC++6.0에 집어넣은 모습인데, 겉으로는 문법은 완전히 맞는 것 같지만 밑에는 항상 오류가 나고, 프롬프트도 이해가 안 되기 때문에 이런 상황이 닥치면 그럴 수도 있겠다는 생각이 듭니다. 이유. 이는 또한 코드를 프로그램 문자에 직접 입력해야 함을 모든 사람에게 경고합니다. 그렇지 않으면 감지하기 어려운 오류가 발생합니다.

마지막으로 CGI 스크립트를 올바르게 실행하기 위해 Windows에서 wamp(Apache)를 올바르게 구성하는 방법에 대해 설명하겠습니다. :

httpd.conf 열기

371행 변경

ScriptAlias /cgi-bin/ "D:/wamp/bin/apache/apache2.4.9/cgi-bin/"前面的#号去掉,就是解除注释,将后面引号里的D:/wamp/bin/apache/apache2.4.9/cgi-bin/改成自己的cgi-bin所在的路径
로그인 후 복사

将387行引号里的内容也改成自己的cgi-bin所在的路径

保存之后重启服务器即可

【相关推荐】

1. 详解cgi向文本或者数据库写入数据实例代码

2. 分享在IIS上用CGI方式运行Python脚本的实例教程

3. 使用CGI模块建立简单web页面教程实例

4. 什么是CGI?详细介绍Python CGI编程

5. 详解XML与现代CGI应用程序的示例代码

6. FastCGI 进程意外退出造成500错误

위 내용은 PythonCGI 프로그래밍의 예제 튜토리얼 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿