我现在已经在这里工作了大约一个半小时,而且我无法设计解决方案。我一直在使用以下代码:
" "
这是我尝试从我的表单传递数据,分别名为form = cgi.FieldStorage()
usrName = form.getvalue('uname')
usrPW = form.getvalue('psw')
while(usrPW == None):
form = cgi.FieldStorage()
usrName = form.getvalue('uname')
usrPW = form.getvalue('psw')
#usrName = str(usrName)
# usrPW = str(usrPW)
connection = pymysql.connect(host = 'localhost', user='golden', password='password', db='db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
#create a new record in the database
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, (usrName, usrPW))
# connection is not autocommit by default. So you must commit to save
# your changes.
connection.commit()
和uname
。当我在cursor.execute()调用中对psw
和uname
进行硬编码时,此代码有效,但是,当我尝试将表单数据发送到查询时,我得到两个结果中的一个:
404无法找到文件
如果我删除顶部的psw
(以及while循环中的命令),它会在页面加载后立即执行 - 我可以输入任何内容并且不向两个参数传递任何内容,导致错误。
关于如何解决这个问题的任何想法?
如何正确地将数据从python CGI表单传递到mySQL数据库?
编辑:回溯更新。
如果我注释掉while循环并硬编码usrName和usrPW,我会得到以下内容:
while(usrPW == None):
但是,有趣的是,这些值会输入到数据库中。
如果我让while循环继续运行,它只会无限期地加载。