python的CGI编程遇到的问题

x95623 2016-10-05 12:12:50
看Mark Lutz的programming python 学python。
例子1-31cgi101.py
第一行的代码是:#!/usr/bin/python
这个应该是liunx中的应用吧?我是在windows环境中用IDLE学习的,这么写的话最后程序不会出现正常的效果
出现的效果如下:

我的理解就是在Linux中#!/usr/bin/python之后把后面的代码当成程序来执行。
但是在windows中用IDLE编程的话#后面的都是注释,之后的代码都被当成文本了。
该怎么样才能解决这个问题呢?希望大神能指点一下,多谢了!
...全文
686 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 7 楼 dn1630 的回复:
这种问题是大神不屑于解答,小白又完全不懂的问题。。。 同遇到这个问题,网上怎么都搜不到解决方案,自己研究了半天终于能用了 把我的解决方法发上来希望对以后学习python programming这本书的人有帮助吧 (很大一部分是自己的理解,有错误的地方希望有热心的大神批评指正。。) Note:本人用的是win10系统,Linux下没有尝试过 想实现显示网页而不是代码,首先要在你的电脑上打开网络服务,就是至少能通过浏览器访问你的电脑硬盘文件(让你的电脑成为一个Web Server!!) 这个应该是python CGI编程的基础, 很多python CGI编程的基础帖子也不跟你讲理由,直接要你配置Apache!! 那些说配置httpd.conf文件的也是要先安装Apache!!httpd.conf在Apache的解压包的conf文件夹下!! 一开始还以为是c盘的配置文件呢!!我足足找了半个小时!!个小时!!小时!!时!!。。 妈蛋对我这菜鸟一点也不友好。。 所以首先确认电脑已经安装Apache!! 1. 安装Apache(百度一下有很多安装教程)(不要去下载源码,下载编译好的压缩包!!) 百度一下python CGI的问题 Note:1.它有各种版本,需要不同版本的VC库的支持,所以要确认电脑已经安装相应的Virtual Studio等软件。。 我下载的是最新版的Apache,为了支持下载安装了一天的VS2017 Note:2. 这个东西安装还比较烦,如果配置不对哪怕安装时报错也会在服务中出现叫apache的服务,但不能用!所以要在注册表中删除这个服务再重启安装!!具体可以百度,我安装时重启了不下4 5次。。。要注意的几点: ×httpd.conf里面的很多配置可以在安装之后在改,但有几个参数一定要提前设置好!![/i] 关键词:ServerRoot "c:/Apache24" 这是Apache的安装目录,按照自己的实际情况(解压到哪就写什么)填写 注意地址的斜杠方向!!不要直接粘贴!!不要直接粘贴!!不要直接粘贴!!重要的事情说三遍!! Window下默认的路径用的是\,这里是用的linux下的/!! 关键词:DocumentRoot "c:/Apache24/htdocs" 这个是网站的根目录,可以自己修改,这里我改成“H:/Web”。 关键词:<Directory "c:/Apache24/htdocs"> 这个也是网站根目录,但是必须和上面的DocumentRoot改成一样,否则无法打开网站。 注意:你填的这个目录必须已创建(必须是存在的),否则也会报错。 关键词:Listene 80 Apache默认开启的服务是通过80端口,如果这个端口被占用需要更改这行,如果没有则不用 (可在cmd下用命令netstat -a查看) 其他的参数可以安装时候再改,这几个是特别要注意的 ×还有安装需要使用windows的cmd,这个一定要用管理员权限打开!!不然不让你安装!! ×貌似还有直接安装的安装包,不过我没有发现,可以自行尝试 2.打开apache安装目录下的\bin\ApacheMonitor.exe 双击会在右下角产生一下图标,把窗口打开然后点击开始服务,如果显示开启服务成功表示成功安装 打开浏览器输入http://localhost 看看是不是会出现It works的字样? 附上一篇安装教程:http://jingyan.baidu.com/article/d8072ac47baf0eec95cefdca.html 感谢这位大神的指导 3.配置apache就是网上一直说的配置httpd.conf 放个大神的配置连接: 这里面的配置说的很详细(好人一生平安) jingyan.baidu.com/article/e4d08ffd8fa40d0fd2f60dfd.html 这个步骤问题不大,配置好后重启服务即可 有几个需要注意的点: 关键词:ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" 这个是Apache服务器的关键文件目录,要修改为自己存放脚本的文件夹。 这个后面的目录就是存放脚本的目录,所有脚本必须放在这个文件夹下,当然可以创建子目录 书中的例子cgi101.py就是要放在这个文件夹下 关键词:AddHandler 在这个后面添加支持的脚本后缀 AddHandler cgi-script .cgi .pl .py 这里一定要添加上.py!! 4.重启apache服务 在浏览器的地址连输入http://localhost/cgi-bin/cgi101.py (cgi101.py是你的脚本的名字!!可以不叫这个名字!!还有如果你把脚本放在了子目录里需要将子目录的名字写在上面!!) (例如:如果我的脚本放在了脚本根目录下的test文件夹下那就应该输入http://localhost/cgi-bin/test/cgi101.py) 这时应该会出现Who are you的那个界面,因为你没有添加参数 如果你输入http://localhost/cgi-bin/cgi101.py?user=Bob就应该会出现Hello Bob的界面!! 现在说明,脚本已经可以被以网页的形式访问了!! 可喜可贺!!只剩最后一步 5.将脚本和写好的html文件关联 将上一步的网址直接替换html文件中action后面的部分既 action=“http://localhost/cgi-bin/cgi101.py” 现在正在打开html文件输入名字提交!! 大功告成!!收工!! 以上内容仅供参考,如遇到问题请自行解决 发几个给我很大帮助的网页 http://www.runoob.com/python/python-cgi.html www.runoob.com/python/python-cgi.html
感谢。。。
崔三岁 2018-07-03
  • 打赏
  • 举报
回复
很简单#!/usr/bin/python
windows下#!后面换成你自己的python 地址就可以了 如:#! C:/python37/python.exe
dn1630 2017-07-28
  • 打赏
  • 举报
回复
这种问题是大神不屑于解答,小白又完全不懂的问题。。。 同遇到这个问题,网上怎么都搜不到解决方案,自己研究了半天终于能用了 把我的解决方法发上来希望对以后学习python programming这本书的人有帮助吧 (很大一部分是自己的理解,有错误的地方希望有热心的大神批评指正。。) Note:本人用的是win10系统,Linux下没有尝试过 想实现显示网页而不是代码,首先要在你的电脑上打开网络服务,就是至少能通过浏览器访问你的电脑硬盘文件(让你的电脑成为一个Web Server!!) 这个应该是python CGI编程的基础, 很多python CGI编程的基础帖子也不跟你讲理由,直接要你配置Apache!! 那些说配置httpd.conf文件的也是要先安装Apache!!httpd.conf在Apache的解压包的conf文件夹下!! 一开始还以为是c盘的配置文件呢!!我足足找了半个小时!!个小时!!小时!!时!!。。 妈蛋对我这菜鸟一点也不友好。。 所以首先确认电脑已经安装Apache!! 1. 安装Apache(百度一下有很多安装教程)(不要去下载源码,下载编译好的压缩包!!) 百度一下python CGI的问题 Note:1.它有各种版本,需要不同版本的VC库的支持,所以要确认电脑已经安装相应的Virtual Studio等软件。。 我下载的是最新版的Apache,为了支持下载安装了一天的VS2017 Note:2. 这个东西安装还比较烦,如果配置不对哪怕安装时报错也会在服务中出现叫apache的服务,但不能用!所以要在注册表中删除这个服务再重启安装!!具体可以百度,我安装时重启了不下4 5次。。。要注意的几点: ×httpd.conf里面的很多配置可以在安装之后在改,但有几个参数一定要提前设置好!![/i] 关键词:ServerRoot "c:/Apache24" 这是Apache的安装目录,按照自己的实际情况(解压到哪就写什么)填写 注意地址的斜杠方向!!不要直接粘贴!!不要直接粘贴!!不要直接粘贴!!重要的事情说三遍!! Window下默认的路径用的是\,这里是用的linux下的/!! 关键词:DocumentRoot "c:/Apache24/htdocs" 这个是网站的根目录,可以自己修改,这里我改成“H:/Web”。 关键词:<Directory "c:/Apache24/htdocs"> 这个也是网站根目录,但是必须和上面的DocumentRoot改成一样,否则无法打开网站。 注意:你填的这个目录必须已创建(必须是存在的),否则也会报错。 关键词:Listene 80 Apache默认开启的服务是通过80端口,如果这个端口被占用需要更改这行,如果没有则不用 (可在cmd下用命令netstat -a查看) 其他的参数可以安装时候再改,这几个是特别要注意的 ×还有安装需要使用windows的cmd,这个一定要用管理员权限打开!!不然不让你安装!! ×貌似还有直接安装的安装包,不过我没有发现,可以自行尝试 2.打开apache安装目录下的\bin\ApacheMonitor.exe 双击会在右下角产生一下图标,把窗口打开然后点击开始服务,如果显示开启服务成功表示成功安装 打开浏览器输入http://localhost 看看是不是会出现It works的字样? 附上一篇安装教程:http://jingyan.baidu.com/article/d8072ac47baf0eec95cefdca.html 感谢这位大神的指导 3.配置apache就是网上一直说的配置httpd.conf 放个大神的配置连接: 这里面的配置说的很详细(好人一生平安) jingyan.baidu.com/article/e4d08ffd8fa40d0fd2f60dfd.html 这个步骤问题不大,配置好后重启服务即可 有几个需要注意的点: 关键词:ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/" 这个是Apache服务器的关键文件目录,要修改为自己存放脚本的文件夹。 这个后面的目录就是存放脚本的目录,所有脚本必须放在这个文件夹下,当然可以创建子目录 书中的例子cgi101.py就是要放在这个文件夹下 关键词:AddHandler 在这个后面添加支持的脚本后缀 AddHandler cgi-script .cgi .pl .py 这里一定要添加上.py!! 4.重启apache服务 在浏览器的地址连输入http://localhost/cgi-bin/cgi101.py (cgi101.py是你的脚本的名字!!可以不叫这个名字!!还有如果你把脚本放在了子目录里需要将子目录的名字写在上面!!) (例如:如果我的脚本放在了脚本根目录下的test文件夹下那就应该输入http://localhost/cgi-bin/test/cgi101.py) 这时应该会出现Who are you的那个界面,因为你没有添加参数 如果你输入http://localhost/cgi-bin/cgi101.py?user=Bob就应该会出现Hello Bob的界面!! 现在说明,脚本已经可以被以网页的形式访问了!! 可喜可贺!!只剩最后一步 5.将脚本和写好的html文件关联 将上一步的网址直接替换html文件中action后面的部分既 action=“http://localhost/cgi-bin/cgi101.py” 现在正在打开html文件输入名字提交!! 大功告成!!收工!! 以上内容仅供参考,如遇到问题请自行解决 发几个给我很大帮助的网页 http://www.runoob.com/python/python-cgi.html www.runoob.com/python/python-cgi.html
x95623 2016-10-14
  • 打赏
  • 举报
回复
windows环境下那个.py文件前的python命令是什么呀?
阿凯99 2016-10-10
  • 打赏
  • 举报
回复
第一行的代码是:#!/usr/bin/python,表示用哪个python解释器来执行本程序。 系统如果同时安装了python2和3,则可写成:#!/usr/bin/python3; 也可指明哪个版本,如:#!/usr/bin/python2.7; 如果只写python,则 /usr/bin/python指向哪个版本,则哪个版本执行。 以上只对unix like系统起作用。 windows系统就比较麻烦。只能在.py文件前加上python命令了。
阿凯99 2016-10-10
  • 打赏
  • 举报
回复
第一行的代码是:#!/usr/bin/python,表示用哪个python解释器来执行本程序。系统如果同时安装了python2和3,则可写成 第一行的代码是:#!/usr/bin/python3;也可指明哪个版本,如第一行的代码是:#!/usr/bin/python2.7
x95623 2016-10-09
  • 打赏
  • 举报
回复
书上显示的效果是这样的,点击cgi101.html后出现下图:

在对话框中输入Bob后点击submit后显示下图的效果:

但是实际显示的不是“Hello Bob”而是cgi101.py的代码内容,所以我觉得是没有把cgi101.py的内容当做代码执行,所以我感觉问题出在第一行“#! /usr/bin/python”。
另外我是在win10用官网的IDLE做的,最开始运行一个webserver.py的程序。
sprawling 2016-10-07
  • 打赏
  • 举报
回复
在windows下面确实这句话没有任何意义。 只是因为python其实大部分是在unix like系统中使用,所以习惯就用了这句开头 我想应该是兼容的原因把,反正多这么一句对硬盘存储没多少影响。
zhangyiant 2016-10-06
  • 打赏
  • 举报
回复
你希望出现什么效果,那个第一行和具体python代码无关。linux下可以把这个文件设置成可执行程序,如果直接运行这个python程序,会根据第一行调用python程序运行此代码。你在windows下调用python.exe执行这个代码是一样的。你想看cgi的网页效果吗?我不太熟,但感觉需要有额外的cgi web server.

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧