python “简单的表单实例:GET方法“” 的迷惑,恳请大佬帮忙解答下
小弟是个菜鸟,在某在线学习网站学习python,遇到个难题,恳请大佬解答下,不胜感激。关于:Python CGI编程
在简单的表单实例:GET方法这,小弟卡住了。
是这样的,Apache我已经配置好,然后也可以创建一个python程序,譬如内容是:Hello Word! 我是来自菜鸟教程的第一CGI程序我的python安装地址是:C:\Users\fifaw\AppData\Local\Programs\Python\Python39
代码是:
#!C:\Users\fifaw\AppData\Local\Programs\Python\Python39\python.exe
print ("Content-type:text/html")
print () # 空行,告诉服务器结束头部
print ('<html>')
print ('<head>')
print ('<meta charset="utf-8">')
print ('<title>Hello Word - 我的第一个 CGI 程序!</title>')
print ('</head>')
print ('<body>')
print ('<h2>Hello Word! 我是来自菜鸟教程的第一CGI程序</h2>')
print ('</body>')
print ('</html>')
然后保存在我的Apache的地方,如F:\Apache24\cgi-bin,我在浏览器中打开:localhost:5022/cgi-bin/hello.py这个可以正常显示。
#!C:\Users\fifaw\AppData\Local\Programs\Python\Python39\python.exe
import cgi, cgitb
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>")
这个也可以正常显示。
但是在简单的表单实例:GET方法 这卡住了
代码是:
<!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>
保存在test文件夹后,浏览器输入:localhost:5022/test/hello_get.html 然后出错,错误如下:
恳请大佬指点迷津
form的action表示提交到某个页面
你的xxx.py明显不是一个页面,退一步讲,就算是一个页面,浏览器也不认识 你的cgi程序要命名为hello_get.py python CGI ? 为啥学这个? 不是已经发展到WSGI了吗? wsgi不才是主流吗? 。。
难道你想基于CGI,自己搞个"中间层",或一个Web服务框架?
ps: 要想了解Python系的Web开发,就先这 Flask 和 Django 二选一 吧。 本帖最后由 fifawas 于 2022-1-28 21:07 编辑
wp231957 发表于 2022-1-28 07:08
form的action表示提交到某个页面
你的xxx.py明显不是一个页面,退一步讲,就算是一个页面,浏览器也不认识
这两个文件,一个命名是:hello_get.py 在Apache24\cgi-bin下,一命名是:hello_get.html 在F:\Apache24\test
https://www.runoob.com/python3/python3-cgi-programming.html
在:GET和POST方法 卡住了
isdkz 发表于 2022-1-28 08:40
你的cgi程序要命名为hello_get.py
我的cgi程序命名就是:hello_get.py 阿奇_o 发表于 2022-1-28 10:29
python CGI ? 为啥学这个? 不是已经发展到WSGI了吗? wsgi不才是主流吗? 。。
难道你想基于CGI,自己 ...
我还是个小白,照着网上教程在学 fifawas 发表于 2022-1-28 20:58
这两个文件,一个命名是:hello_get.py 在Apache24\cgi-bin下,一命名是:hello_get.html 在F:\Apache24\te ...
现在好像没人这么玩
这应该都是过时的技术 本帖最后由 isdkz 于 2022-1-28 21:21 编辑
apache的默认web根目录是htdocs,看你的访问路径你应该把
hello_get.html放在Apache24\htdocs\test,而不是Apache24\test isdkz 发表于 2022-1-28 21:17
apache的默认web根目录是htdocs,看你的访问路径你应该把
hello_get.html放在Apache24\htdocs\test,而不 ...
大神牛逼,终于成功了。 wp231957 发表于 2022-1-28 21:12
现在好像没人这么玩
这应该都是过时的技术
谢谢大神帮忙,给我提供了新的思路,我只是在学基础的,以后会学Flash和Django
页:
[1]