获取python cgi中表单字段的id

时间:2013-02-19 19:38:19

标签: python cgi

我使用Python编程CGI并发现CGI以一个名为FieldStorage的类的形式将信息传递给Python。我遇到的类FieldStorage的主要属性是从表单字段中获取数据的“getvalue”。是否有可能获得该字段的id值?

修改

我想知道我是否可以获得有关表单发送数据的一些独特信息。这是因为,我有一个表单和2个脚本。我的表单,我把项目详细信息然后一个脚本1获取该数据并将其保存在数据库中。我有另一个脚本2,它查询保存的项目数据,创建一个表单并使用数据填充表单以启用编辑项目,在用户编辑后,数据将更新回数据库。

更新回db是问题所在。我想使用脚本1进行更新,但在这种情况下我不会INSERT INTO ...我会做更新Table1 ...现在,我怎么知道哪个请求是编辑或更新。我这样做是因为在表单有70个字段并创建另一个脚本的情况下,只需要添加更新逻辑来复制script1。 这就是我想用脚本

做的

script1.py

#!/usr/bin/env python

import cgi
import cgitb; cgitb.enable()     # for troubleshooting
import MySQLdb

form = cgi.FieldStorage()

#there are 70 fields
id = form.getfirst("id");
error = form.getfirst("error");
comment = form.getfirst("comment");
product_name = form.getfirst("product_name");
verified_product_name = form.getfirst("verified_product_name");
url = form.getfirst("url");
verified_url= form.getfirst("verified_url");
.
.
.
source = form.getfirst("source");

print 'Content-type: text/html\r\n\r'
print '<html>'
print 'Update Successfull ! !'
print '</html>'


db = MySQLdb.connect(host="localhost", user="root", passwd="", db="products")


cursor = db.cursor()
sql=""

### Check the request---How do i do this?

if update: ##if the request is for updating

sql = """UPDATE item SET (id=id, error=error, comment=comment, product_name=product_name, verified_product_name=verified_product_name, url=url, verified_url=verified_url, image_url=image_url,..., source=source)"""

else: ##if the request is for inserting

sql = """INSERT INTO item (id, error, comment, product_name, verified_product_name, url, verified_url, image_url, verified_image_url, brand, verified_brand, type, verified_type, price, min_price, max_price, verified_price,..., source) VALUES ('%s', '%s', "%s", '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s',..., '%s')""" %(id, error, comment, product_name, verified_product_name, url, verified_url, image_url, verified_image_url, brand,..., source)

try:
  cursor.execute(sql,(id, error, comment, product_name, verified_product_name, url, verified_url, image_url, verified_image_url, brand, verified_brand, type, verified_type, price, min_price, max_price, verified_price, measure_unit, ..., source))

   db.commit()
except Exception as err:


   db.rollback()

   db.autocommit(True)
cursor.execute(sql)
cursor.fetchall()
db.close()

希望你得到我的问题。我是否可以在不创建另一个脚本的情况下单独进行更新?

0 个答案:

没有答案