Python CGI编程-通过HTML表单使用GET方法发送数据,用Python文件提交服务器脚本不成功解决办法
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点所示的内容。
- 使用Versions时.a文件不能成功被提交的解决方法
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- 通过GET方法来发送数据时不能直接使用变量分隔符
- jQuery使用$.get()方法从服务器文件载入数据实例
- 客户端GET方法提交数据,服务器返回文件格式数据的demo
- android客户端通过Get方式提交参数给服务器,使用URL和HttpURLConnection实现,以及乱码问题解决
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- android中通过GET方法接收数据并通过xml解析数据,POST方法向服务器提交数据
- 表单通过get和post方式提交数据解决乱码的方法
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- (一)----使用HttpClient发送HTTP请求(通过get方法获取数据)
- (三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)
- Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据)