1.windows 10系统,使用Apache服务器,HTML文件hello_get.html的路径是E:\var\www
2.Python版本是3.7.1,Python文件hello_get.py的路径是:E:\var\www\cgi-bin
3.hello_get.html文件如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<form action="cgi-bin/hello_get.py" method="get">
站点名称: <input type="text" name="name"> <br />
站点URL:<input type="text" name="url" />
<input type="submit" value="提交" />
</form>
</body>
</html>
4.hello_get.py文件如下:
#!E:/Python/python.exe
#-*- coding:UTF-8 -*-
#filename:hello_get.py
#CGI处理模块
import cgi,cgitb
#创建 FieldStorage 的实例化
form=cgi.FieldStorage()
#获取数据
site_name=form.getvalue('name')
site_url=form.getvalue('url')
print("Content-type:text/html")
print
print("<html>")
print("<head>")
print("<meta charset=\"utf-8\">")
print("<title>菜鸟教程CGI测试实例</title>")
print("</head>")
print("<body>")
print("<h2>%s官网:%s</h2>" %(site_name,site_url))
print("</body>")
print("</html>)
5.使用浏览器打开hello_get.html文件,输入菜鸟教程和http://www.runoob.com,点击提交,如下图:
6.点击提交后,显示的是hello_get.py文件的文本内容,如下图:
7.点击提交后,正确的显示结果应该是:
8.找了很久不知道问题出在哪里,请各位大神帮帮忙
9.感谢评论区各位大神的帮助,已经解决了上述问题,方法如下:
(1)配置Apache虚拟主机(配置基于端口的虚拟主机,基于域名或是IP配置虚拟主机请另外百度哟)
进入E:/Apache24/conf/extra文件夹下,打开httpd-vhosts.conf文件,在文件里面添加如下代码:
<VirtualHost _default_:8088>
DocumentRoot "E:\var\www\cgi-bin"
<Directory "E:\var\www\cgi-bin">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "E:/test"
<Directory "E:/test">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
修改完成后,保存该文件。
(2)进入E:/Apache24/conf文件夹下,打开httpd.conf文件,在第61行左右添加Listen 8080
在httpd.conf文件第180行左右,去掉LoadModule vhost_alias_module modules/mod_vhost_alias.so前面的#注释标识符
修改完成后,保存httpd.conf文件。
(3)重启Apache服务。
(4)在浏览器输入localhost:8080和localhost:8088能访问对应文件目录,虚拟主机就配置成功了。
(5)把hello_get.html文件放到E:/test文件夹下,在浏览器输入http://localhost:8080/hello_get.html(不能直接用浏览器打开该文 件),在显示的页面上输入站点名称和站点URL后能正确显示如文章第7点所示的内容。