当前位置: 首页 > 面试题库 >

返回Python CGI MySQL脚本的输出

马高谊
2023-03-14
问题内容

我是Python和MySQL的新手,这是我的第一个Stack问题。因此,如果我遗漏了一些明显的内容,请提前道歉。但是,在问之前,我确实确实尝试过对此进行研究。

我正在尝试学习Python,MySQL和CGI脚本的基础知识。为此,我一直在阅读http://www.tutorialspoint.com/python/python_cgi_programming.htm和http://www.tutorialspoint.com/python/python_database_access.htm上的教程。

我正在尝试让CURL GET或Python Requests GET在测试服务器上调用Python CGI脚本。然后,该Python
CGI脚本将在本地MySQL数据库上执行读取操作,并将结果返回到CURL或Python请求。

我创建的Python CGI脚本将MySQL
Read数据完美输出到远程测试服务器上的终端。但是,它不会将输出返回给CURL或触发CGI脚本的Python请求。

这是我拼凑的Python CGI脚本:

#!/usr/bin/python

import MySQLdb

# Open database connection
db = MySQLdb.connect("localhost","testuser","test123","TESTDB" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# Prepare SQL query to INSERT a record into the database.
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > '%d'" % (1000)
try:
   # Execute the SQL command
   cursor.execute(sql)
   # Fetch all the rows in a list of lists.
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
      # Now print fetched result
      print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
             (fname, lname, age, sex, income )
except:
   print "Error: unable to fetch data"

# disconnect from server
db.close()

我的 猜测
是,我需要以某种方式将数据从SQL查询传递回Python或通过某种Return或Output语句传递回请求过程。但是,我为研究此问题所做的所有最大努力都无济于事。谁能指出我正确的方向?非常感谢您的帮助!

马克:-)


问题答案:

首先,按照您链接的CGI教程,您需要输出正在使用的内容类型:

print "Content-type: text/plain\r\n\r\n",

如果您至少没有换行符,HTTP客户端会认为您的内容应该是标头的一部分并感到困惑,他们可能会假设您要的文档为空。

接下来,您需要一个CGI服务器。Python附带一个。将您的脚本放在一个名为的子目录中,cgi-bin然后运行此命令(从父目录):

python -m CGIHTTPServer

呼叫网址如下所示:

curl http://localhost:8000/cgi-bin/cgitest.py


 类似资料:
  • 抱歉打扰了,我已经熬夜了。有人能回顾一下为什么这个脚本没有返回任何内容吗:

  • 问题内容: 我想从PHP脚本返回JSON。 我只是回应结果吗?我必须设置标题吗? 问题答案: 通常,没有它会没事,但是您可以并且应该设置Content-Type标头: 如果不使用特定的框架,通常会允许一些请求参数来修改输出行为。通常,为了快速进行故障排除,不发送标头,或者有时将数据有效载荷print_r盯着它很有用(尽管在大多数情况下,它不是必需的)。

  • 问题内容: 我想从bash脚本执行python脚本,并且要将python脚本的输出存储在变量中。 在我的python脚本中,我将一些内容打印到屏幕上,最后我返回一个带有以下内容的字符串: 在我的bash脚本中,我执行了以下操作: 但是,当我检查with的值时,我得到了Python脚本打印到屏幕上的所有内容,但 没有 返回值! 我应该怎么做? 编辑:我需要该字符串,因为它告诉我Python脚本创建的

  • 这三个函数的返回类型提示有什么不同吗? 他们都应该有< code>- 提问的动机是这个问题,这个很好的答案,以及我正在学习类型提示的事实。

  • 主要内容:示例,执行测试标签呈现类型为“”的“”类型的HTML元素。此标签将外部JavaScript文件添加到JSF页面。 以下JSF标签 - 被渲染成以下HTML代码 - 示例 以下是文件: 中的代码 - 以下是文件: 中的代码 - 以下是文件: 中的代码 - 执行测试 使用 NetBeans 创建一个Web工程,名称为:Outputscript,并使用以上代码。运行项目,Tomcat启动完成后,在浏览器地址栏中输入以

  • 问题内容: 我正在显示项目ID和标题。还有一个链接“显示此成员的项目”。单击它会显示该用户的项目。为此,我使用ajax。有一个脚本可以检测单击复选框。此选项对于第一个列出的项目正常工作,但对ajax返回的项目无效 脚本代码和ajax是 getdetails.php代码是 问题答案: 使用此脚本