学习python cgi的一点心得体会

这两天学了python cgi编程,挺好玩的 跟大家分享一下:

目标:

创建一个cgi脚本 接收来访者的参数

步骤:

创建一个cgi服务的根目录(随便创建,然后在终端或者cmd下切换到该目录下)

python2.x的httpserver启动:python -m CGIHTTPServer 13333   会启动http server 在13333端口上

python3.x的httpserver启动:python -m http.server --cgi 13333 这个--cgi不可以拿掉 否则cgi脚本运行不了

然后这个时候 你就可以创建一个比如index.html 测试一下 访问了

接下来 创建cgi-bin 目录 在当前目录下(目录名必须是这个,cgi脚本就放在这个目录下),此时相对于http服务来说 根目录还是上一层的目录

可以创建一个index.py在cgi-bin下,内容:

#!/usr/bin/env python
import cgi   #内置模块
html=‘‘‘
<html>
        <head>
        </head>
        <body>
                <form method="POST">
                        <input type="text" name="name">
                        <input type="text" name="age">
                        <input type="submit" name="return">
                </form>
                <b>My name is %s , I‘m %s years old .</b> 
        </body>
</html>
‘‘‘
print("Content-Type:text/html")            #header
print()                                    #声明header结束
f=cgi.FieldStorage()                       #cgi的一个类 用来接收参数的
try:
        print(html%(f[‘name‘].value,f["age"].value))
except:
        print(html%(‘\t‘,‘\t‘))

效果会在你访问的时候出现两个文本框:

有几个坑:一个是python的cgi模块的启动位置 一定要是在cgi-bin的上层目录下;

其次是index.py一定是在cgi-bin下才行 而且权限不足的话会报错;三是在实例化cgi的fieldstorage类的时候,注意别声明多次,比如我在上边的代码的try那里才去实例化,类似这样:

try :

print(html%(cgi.FieldStorage["name"].value,cgi.FieldStorage["age"].value)

except......

这样写的结果会什么都不显示 因为第一次实例化会传递数据 但是第二次的时候没有提交的结果了,所以会有可能神马都不显示或者只显示一个;

最后就是注意这个:

print("Content-Type:text/html")

print()

这个一定要写上,这个是声明头部和头部结束的,不写有问题;暂时我也就总结这么多~

跟我一起来一句英文吧:

It always seems impossible until its done

成功之前,一切看起来都是不可能的

时间: 2024-10-23 10:13:49

学习python cgi的一点心得体会的相关文章

近期开发工作的一点心得体会

近期,本人加班加点地完成了多个软件版本的开发工作.总结起来,有以下心得体会: 第一,软件的第一个程序版本非常的重要,它直接决定了产品的好坏.就像大楼的地基一样,软件后续版本的需求都是在第一个版本的基础上完成的,如果"地基"没有打牢,后面对程序的增删改都会很困难,让人感到似乎掉进了一个"无底洞"里面. 第二,软件的详细设计文档非常重要,千万不要将之放在无足轻重的位置.要想对程序的基本功能有一个大致的.快速的了解,最普遍的做法就是查看它的详细设计文档.如果这个文档写好了

JAVAOO一点心得体会

JAVAOO学到现在,从基本数据类型到基本语句,再到一些语言特性,再到 IO 操作,网络操作. 学的并不算特别好,尤其是反射那部分还有不少不懂的地方,但是却有一种豁然开朗的感觉,因为我对基本语言学习完成之后的两个方向软件设计及程序原理 有了种切实的感受,所以想在这里写点心得: 一. 软件设计: 其实我们之前一直在做的工作就是软件设计.做项目,很少考虑到性能,并且也没有能力考虑性能,因为对这些对象在内存中的存放不了解.但是通过做软件设计,可以使你熟练的掌握你所学到的语言知识,也能让你灵活的运用你所

最近关于css样式重构的一点心得体会

之前的项目一直都是基于bootstrap,elementUI这些已经很成熟的框架进行二次开发,要么就是一些很小的宣传页面,h5页面,或者结构相对简单的移动端.一直都没有机会对css的整体进行一个思考,这次正好有个整站的重构项目,让我对css模块化以及重用这些进行了一个很好的梳理. 很早以前就读过bootstrap的sass源码,当时就十分的震惊,仿佛打开了新世界的大门,原来css还可以这么玩?css原来也有模块化,原来也可以这么优雅?对比之下,自己写的,简直杂乱无章,一堆狗屎,重用性不行,后期不

python os的一点心得

前几天做了一个文件替换功能用到些python os的功能,感觉python os模块的功能非常的强大,如果你希望你的python程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和 Windows下运行,看到这里觉得python的跨平台的强大把,精彩还在后面: 下面列出我经常用到的python os模块的方法和大家一起分享下,如果你用到些比较好的python os方法,可以发到python 自由人社区 1. os.getc

学习javascript过程中的心得体会

在看到这个编程练习的时候,我的第一反应是JS居然强大到可以代替JSP了.但仔细想想,其实这只是表面的删除,增加,并没有对数据库的数据产生任何影响,所以,JSP还是王道啊!233333 练习过程中遇到的问题,知识点总结 1.由于很多时候JS是写在head前面的,调用一些body里的元素ID,而此时body尚未载入,就会报错,找不到该元素,所以写成window.onload=function() {//调用一些元素..}写在head的前面,这样再调用就不会出错了

读《对软件开发的一点心得体会》有感

原文地址:http://www.swoole.com/News/65.html 一.前期规划: 我理解的前期规划是:在市场人员们汇总一个需求提交给产品专家带领的产品经理团队,然后经过这个团队根据公司具体情况再次分析和规划出一个最终需求文档. 这个需求文档应当首先提交给技术研发部门的负责人以及核心开发人员.由开发团队对其进行技术和风险分析.如果对此需求统一有异议的地方,需要返回给产品团队,重新修正需求.反复如此,直至需求完善准确,细致,清晰. 前期规划就像高楼的地基,如果马马虎虎,就算是一块砖块没

关于Solr的使用总结的心得体会

摘要:在项目中使用Solr作为搜索引擎对大数据量创建索引,提供服务,本文是作者对Solr的使用总结的一点心得体会, 具体包括使用DataImportHandler从数据库中近实时同步数据.测试Solr创建索引的性能.以及测试Solr的搜索效率总结等. 具体搜索引擎概念.Solr搭建方法.数据库mysql使用方法,假设读者已有了基础.本文操作均是在linux上进行的. 1.      Solr 1.1  Solr从数据库中读取数据并创建索引速度(使用DataImportHandler) l 一次性

关于现场技术支持的一点心得

技术支持本质上是一种专业服务,礼貌的沟通交流是成功的第一步,解决用户问题的同时并让用户保持愉快的心情是终极的目标; 一点心得体会如下: 1.到现场后先观察询问用户是否方便,这一礼貌的举动边唱好的开场戏,尤其是针对不同部门的技术相关领导哈! 2.弄清楚问题的具体现象; 3.根据经验和日志信息进行初步分析判断,缩小问题范围; 4.分析客户系统的环境,ISO版本.日期.软件rpm包版本.相关配置文件是否更改过; 5.与客户交流,分析做过什么操作; 6.over

薛大龙博士-信息系统项目管理师培训班学习心得体会

首先,非常庆幸本人通过了2016年上半年信息系统项目管理师考试,自己的辛苦付出没有白费. 本人在IT公司工作近10年,主要负责团队管理.项目管理等工作,2016年决定报考信息系统项目管理师,由于平时工作非常忙,考试也有一定的难度,为了保证能够顺利通过考试,我有幸找到了51CTO学院,更有幸结识了薛老师,参加了薛老师的软考培训班,现在把自己的一些心得体会分享给大家,仅供参考. 1.信息系统项目管理师考试有一定的难度,并且答题也需要有套路,如果单靠自己学习教材,通过考试还是有难度,因为我们学习的时间