【问题标题】:Issue with Python Web-ApplicationPython Web 应用程序的问题
【发布时间】:2016-08-17 09:02:09
【问题描述】:

我正在 MA 中创建跟踪的 Web 应用程序。我希望能够单击路径的名称,并显示其信息。我有一张名为“远足”的桌子,有 10 列。现在,当我单击路径的名称时,页面上显示的唯一内容是 (),只有两个括号,没有其他内容。我想效仿一位教授给我的例子,但似乎我做错了什么,但我真的不知道是什么。

任何帮助将不胜感激!

def getHikeInfo(name):   
# connect to db
conn, cursor = getConnectionAndCursor()

# prepare SQL
sql = """
SELECT *
FROM hiking
WHERE name = %s
"""

# run the SQL
cursor.execute(sql, name)

# fetch the results
data = cursor.fetchall()

# clean up
cursor.close()
conn.close()

return data

################################################################################
if __name__ == "__main__":

form = cgi.FieldStorage()

if "name" in form:
    name=form['name'].value
    print getHikeInfo(name)

【问题讨论】:

  • 顺便看看韦斯顿的小径
  • @Drew 哈哈哈,会的!!
  • 你应该写 if name in form: 不带双引号
  • @rocksteady 我认为这不会有帮助,这会在应用程序中产生错误,但谢谢!

标签: python mysql web-applications


【解决方案1】:

据我了解,您需要将您的 name 查询参数放入一个元组中:

cursor.execute(sql, (name, ))

而且,如果您只需要数据库中的一行,请使用fetchone()

data = cursor.fetchone()

【讨论】:

  • 我尝试了你所说的,现在网页不再显示 (),而是显示“无”。
  • @smoody 我认为只是表中没有与名称匹配的记录。能否调试一下,看看name的值是多少?
  • 'name' 是我在表中的列名之一。我对其进行了调试,'name' 的值是路径的名称(例如:key name=name,value=Wells State Park)。
  • @smoody,你确定你在hiking 表中有这个名字吗?
  • @smoody 快速检查一下,cursor.execute(sql, (name.strip(), )) 怎么样?
猜你喜欢
  • 1970-01-01
  • 2011-07-06
  • 2011-05-04
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 2011-04-20
  • 2010-09-19
相关资源
最近更新 更多