CGI之html提交表单无法响应

CGI基础

  • 用户访问网站,看到一个使用HTML编码的表单,在他或者她的浏览器中填写这个表单。表单提交后,服务器会根据表单或连接服务器的地址来确定运行某个脚本,并生成另一个HTML页面作为响应。
  • 数据通常在三个程序中传递:从客户端浏览器开始,到web服务器,再到CGI脚本,然后返回浏览器。用户向服务器提交数据库的键,得到相应的记录作为回复

编写一个HTML文件生成一个表单

  • CGI\cgi101.html

      <html>
      <title>Interactive Page</title>
      <body>
      <form method=POST action="cgi-bin/cgi101.py">
          <P><B>Enter your name:</B>
          <P><input type=text name=user>
          <P><input type=submit>
      </form>
      </body></html>
    

    #注意开始的action属性,指定了服务器处理表单输入的脚本

  • 请求该网页的url,浏览器将显示这段代码生成的输入表单

    在这里插入图片描述

编写脚本

  • 表单提交后,Web服务器会解析这个请求,然后运行下面的脚本,这个Python脚本和HTML文件一样都存储在Web服务器运行的机器上,它运行在服务器上,处理输入并为客户端浏览器生成响应。

  • CGI\cgi-bin\cgi101.py

      import cgi
    
      form = cgi.FieldStorage()   # 解析表单数据
      # hdr加回车
      print('Content-type: text/html\n')
      print('<title>Reply Page</title>')
      if not 'user' in form:
          print('<h1>Who are you?</h1>')
      else:
          print('<h1>Hello <i>%s</i>!</h1>' % cgi.escape(form['user'].value))
    

出现错误,无法找到网页

在这里插入图片描述

解决

1、修改服务器端口号

  • 命令行cd 到当前项目所在的文件中(即cgi-bin文件所在的目录)输入下方指令

      	python -m http.server --cgi 8081
    
  • 出现如下的代码则成功
    在这里插入图片描述2、修改HTML文件中的action属性

  • 修改的代码段如下

      <form method=POST action="http://localhost:8081/cgi-bin/cgi101.py">
    

再次提交表单

在这里插入图片描述

  • 点击提交后
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值