mysql - Python Flask 将数据插入 MySQL

标签 mysql flask

我有一个这样的注册表:

<form action="{{url_for('app.register')}}" method="post">
            <input type="text" placeholder="First Name" name="fname" required/><br><br>
            <input type="text" placeholder="Last Name" name="lname" required/><br><br>
            <input type="text" placeholder="username" name="user" required/><br>
            <input type="password" placeholder="password" name="password" required/><br>
            <input type="password" placeholder="confirm password" name="cpassword" required/><br><br>
            <input type="text" placeholder="Email" name="email" required/><br><br>
            <select id="soflow" name="selection" required >
  <option value = "Default">Select a Security Question</option>
  <option value = "What is your first school">What is your first school?</option>
  <option value = "What is the name of your first pet">What is the name of your first pet?</option>
  <option value = "What is your first car">What is your first car?</option>
</select><br><br>
  <input type="text" placeholder="Security Answer" name="answer" required/><br>
            <input type="submit" value="Sign Up">

    </form>

我的 python 代码用于检索数据并将其插入数据库,如下所示:

db = MySQLdb.connect(host="localhost", user="root", passwd="", db="osn")
cur = db.cursor()
@blueprint.route('/register/', methods=['GET', 'POST'])
def register():
    adduser()
    return render_template('reg.html')

@blueprint.route('/adduser/', methods=['GET', 'POST'])

def adduser():
    print("Entered")

    try:
        fname = request.form['fname']
        lname = request.form['lname']
        password = request.form['password']
        username = request.form['user']
        cpassword = request.form['cpassword']
        email = request.form['email']
        selection = request.form['selection']
        answer = request.form['answer']
        print fname,lname,password,username,cpassword,email,selection,answer
        cur.execute("INSERT INTO 'login'('fname','lname','username','password','email','question','answer') VALUES (%s,%s,%s,%s,%s,%s,%s,%s)",(fname,lname,username,password,cpassword,email,selection,answer))        
        print "Registered"
    except Exception as e:
       return(str(e))

这里的问题是它正在执行到插入语句上面的打印语句,它没有显示任何错误,但没有插入数据。我到底哪里出错了。请考虑一下我是 Flask 新手。预先感谢:)

最佳答案

您的插入已完成,但您尚未将数据提交到数据库。因此,在您的 session 结束后,它会回滚。

根据 MySQL 的事务隔离策略,它可能永远不会对其他程序或事务可见。

关于mysql - Python Flask 将数据插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35172967/

相关文章:

php - 使用 Ajax、MySQL 和 PHP 实现跟随系统

php - 如何存储mysql设置?

PHP session 、超时和跟踪

mysql - 从列和 GROUP BY 中获取 AVG 的 SQL 查询

mysql - 在 MAC OS X 10.6 上使用 MySQL C API 编译问题

python - Flask sqlalchemy 更新错误 - update() 缺少 1 个必需的位置参数 : 'self'

python - Flask cli 无法导入使用 FLASK_APP 设置的应用程序

python - 同一页面上相同 wtform 表单的多个独立实例

用于微服务的 Django 或 Flask 或 Falcon

python - Flask - 如何使用装饰器从 app.before_request 中排除路由?