python CGI 文件读写注意 500

cgi出现500错误 ,是由于 HTTP表头不对

gi的通信依靠stdout与浏览器通信。 
所以简单地在py-cgi-index.py里面写: 
#!/usr/bin/env python

print ‘hello world‘

这样写是不对的。 
cgi接口规定,cgi脚本输出的开头应该是http header。 
而hello world这种字符无法被识别为任何有效的http header, 
所以如果访问http://localhost/python-cgi,会返回500错误。

解决办法有两个: 
1、写上http header。 
header与body之间必须有一个空行,以识别前面的是header,后面的是body。 
代码改成: 
#!/usr/bin/env python

print ‘Content-Type: text/html\n\nhello world‘ 
2、空白http header。 
不写http header的情况下,apache会自动补上header。 
代码改成: 
#!/usr/bin/env python

print ‘\nhello world‘

cgi要读写文件,注意一定要将该文件权限设置为666,即全部可写。

时间: 2024-10-15 19:20:36

python CGI 文件读写注意 500的相关文章

python进阶--文件读写操作

Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 = open('thisfile.txt') >>>try: f1.read() finally: f1.close() 2. 读文件(read,readline,readlines) ①读文本文件 input = open('data','r') input.read() ②读二进制文件

python基础-文件读写'r' 和 'rb'区别

一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r':默认值,表示从文件读取数据.'w':表示要向文件写入数据,并截断以前的内容'a':表示要向文件写入数据,添加到当前内容尾部'r+':表示对文件进行可读写操作(删除以前的所有数据)'r+a':表示对文件可进行读写操作(添加到当前文件尾部)'b':表示要读写二进制数据 2.读文件 进行读文件操作时,直到读到文档结束符(EOF)才算读取到文件最后,Python会认

【Python】文件读写操作

Python的文件读写有点类似php的文件读写.php的文件读写已经在<[php]让记事本成为你调控变量的控制台>(点击打开链接)说过了,以下用一个小样例说明Python的文件读写. 在F盘原本是没有f:\你好.txt这个文件的,我们要把用户在Python控制台输入的内容,搞到这个文件上去.本程序在Eclipse下的Pydev编译通过没有乱码.Windows控制台cmd的乱码问题请參考<[Python]遍历某文件夹下的全部文件夹与文件的路径.输出中文乱码问题>(点击打开链接).程序

快速入门Python中文件读写IO是如何来操作外部数据的?

读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件). 读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 >>> f =

Python open文件读写模式说明

对于Python打开文件的模式,总是记不住,这次在博客里记录一下 r+: Open for reading and writing.  The stream is positioned  at  the beginning of the file. w+:Open for reading and writing.  The file is created  if  it  does not  exist, otherwise it is truncated.  The stream is pos

Python(3):文件读写与异常

访问路径: 文件读写必然涉及到文件会放在某个路径下.在python里,可以通过引入os包来实现切换当前访问的路径: 1 # 假设我在 /home/zyq/KiDe/Python/test 文件夹中有一个文件 test.txt 那么我可以通过以下命 令定位到该文件夹: 2 >>>import os 3 >>>os.chdir('/home/zyq/KiDe/Python/test') 4 # 此时可以通过 os.getcwd() 来得到当前的工作目录. 5 # 此时可以通

Python中文件读写

 2019-06-01Python中的文件读写操作文件过程如下1.打开文件 格式:open(path,flag[,encoding][,errors]) path:表示要打开文件的路径,flag:表示打开方式 r 以只读的方式打开文件,文件的描述符放在文件的开头 rb 以二进制格式打开文件用于只读,文件的描述符放在文件的开头 r++ 打开一个文件用于读写,文件的描述符放在文件的开头 w 打开一个文件只用于写入,如果该文件已经存在会覆盖,如果不存在则创建一个新文件 wb 打开一个文件只用于写入二进

python 的文件读写方法:read readline readlines wirte &nbsp; writelines

read()方法读入整个文件,把整个文件以字符串形式返回. readline()  方法每次只读一行,每运行一次只读一行.如果要读整个文件,需要结合循环判断文件结束. python判断文件末尾的标志是,读到空字符. 比如: while str != '':     readline() 而readlines()每次读入整个文件,以列表的形式返回,把文件的每一行作为列表的一个元素. write(str)  提供的参数是字符串,把字符串写入文件. writelines(seq)  提供的参数是可迭代

Python常用文件读写

读文本文件 input = open('data', 'r') #第二个参数默认为r input = open('data') 读二进制文件 input = open('data', 'rb') 读固定字节 file_object = open('abinfile', 'rb') 3.写文件 写文本文件 output = open('data', 'w') 写二进制文件 output = open('data', 'wb') 追加写文件 output = open('data', 'w+') 写