Данные MySQL не отображаются, когда данные вводятся с использованием формы HTML в Python - PullRequest
0 голосов
/ 30 октября 2018

Это код Python для колбы:

from flask import Flask, render_template, request
from sqlalchemy import create_engine
import pymysql

db = create_engine("mysql+pymysql://root:H@r$h123@localhost:3306/database")
app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/success", methods=["POST"])
def success():
    name = request.form.get("name")
    email = request.form.get("username")
    password = request.form.get("password")
    rpassword = request.form.get("rpassword")
    db.execute("INSERT INTO information(name, email, password, rpassword) 
    VALUES(name, email, password, rpassword)",
            {'name':name, 'email':email, 'password':password, 
   'rpassword':rpassword})
   return render_template("success.html", name=name)

Это HTML код

<form id="sign" action="{{url_for('success')}}" method="POST">
    Name:            <input type="text" name="name"><br><br>
    Email:           <input type="text" name="username"><br><br>
    Password:        <input type="password" name="password"><br><br>
    Confirm-Password:<input type="password" name="rpassword"><br><br>
    <input type="Submit" name="submit" value="Sign Up">
</form>

Всякий раз, когда я пытаюсь добавить данные, используя форму HTML, я могу вводить данные успешно, и success.html также загружается, но данные не отображаются в MySQL

Любое предложение ??

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Вам нужно фиксировать, когда это DML команды.

https://docs.sqlalchemy.org/en/latest/core/connections.html#using-the-threadlocal-execution-strategy

try:
    db.execute(...)
    db.commit()
except:
    db.rollback()
0 голосов
/ 30 октября 2018

Пожалуйста, прочтите документ. https://www.python.org/dev/peps/pep-0249/#paramstyle

Возможно, для аргументов ключевого слова вы должны использовать:

"INSERT INTO information(name, email, password, rpassword) VALUES(%(name)s, %(email)s, %(password)s, %(rpassword)s)"
...