将Python CGI脚本的表单数据传递给mySQL查询

时间:2017-12-04 14:59:18

标签: python mysql forms cgi

我现在已经在这里工作了大约一个半小时,而且我无法设计解决方案。我一直在使用以下代码:

" "

这是我尝试从我的表单传递数据,分别名为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()调用中对pswuname进行硬编码时,此代码有效,但是,当我尝试将表单数据发送到查询时,我得到两个结果中的一个:

  1. 404无法找到文件

  2. 如果我删除顶部的psw(以及while循环中的命令),它会在页面加载后立即执行 - 我可以输入任何内容并且不向两个参数传递任何内容,导致错误。

  3. 关于如何解决这个问题的任何想法?

    如何正确地将数据从python CGI表单传递到mySQL数据库?

    编辑:回溯更新。

    如果我注释掉while循环并硬编码usrName和usrPW,我会得到以下内容:

    while(usrPW == None):

    但是,有趣的是,这些值会输入到数据库中。

    如果我让while循环继续运行,它只会无限期地加载。

0 个答案:

没有答案