如何使用 python Flask 应用程序将文本从输入字段发送到 MySQL 数据库

迈克齿轮

我正在学习编写 python 并且正在开发一个 Web 应用程序。它有一个带有一组输入字段和一个提交按钮的注册系统。我已经确认数据库已连接,我可以在运行应用程序时向其中插入数据。当我在输入字段中输入数据时,它返回错误:

Bad Request The browser (or proxy) sent a request that this server could not understand.

这是蟒蛇:

from flask import Flask, request, render_template, redirect, url_for
from flask_mysqldb import MySQL;
from DB_Operations import add_text
import mysql.connector

app = Flask(__name__)
db = MySQL(app);

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

@app.route('/dashboard')
def dashboard():
    return render_template('dashboard.html')

@app.route("/add_text", methods=["POST", "GET"])
def AddText():
    if request.method == "POST":
        username = request.form["uname"]
        first_name = request.form["fname"]
        last_name = request.form["lname"]
        password = request.form["pwd"]
        email = request.form["email"]
        add_new = add_text(username, first_name, last_name, password, email)
        print("success")
       
    else:
        print("error")
        return render_template('login.html')

if __name__ == '__main__':
    app.run(debug=True)

第二个文件:

import mysql.connector

#database connection
mydb = mysql.connector.connect(host="localhost",user="root",database="sdv_graphs")
mycursor = mydb.cursor()

def add_text(username,first_name, last_name, password, email):
    sql = "INSERT INTO tbl_user (fname, lname, upwd, umail, uname) VALUES (%s, %s, %s, %s, %s)"
    val = ("{first_name}", "{last_name}", "{password}", "{email}", "{username}")
    mycursor.execute(sql, val)
    mydb.commit()
    return 1

这是我的 HTML:

<form action="/add_text" method="POST">
    <div class="login-box">
        <h1 id="page-title">Login</h1>
        <div class="textbox sign-up-textbox">
            <i class="far fa-user"></i>
            <input class="input-box" id="fname" type="text" placeholder="First Name" name="First Name" onfocus="this.placeholder = '', this.parentNode.style.color = 'white'" onblur="this.placeholder = 'First Name'">
        </div>

        <div class="textbox sign-up-textbox">
            <i class="far fa-user"></i>
            <input class="input-box" id="lname" type="text" placeholder="Last Name" name="Last Name" onfocus="this.placeholder = '', this.parentNode.style.color = 'white'" onblur="this.placeholder = 'Last Name'">
        </div>

        <div class="textbox">
            <i class="far fa-user"></i>
            <input class="input-box login" id="uname" type="text" placeholder="Username" name="Username" onfocus="this.placeholder = '', this.parentNode.style.color = 'white'" onblur="this.placeholder = 'Username'">
        </div>

        <div class="textbox">
            <i class="fas fa-lock"></i>
            <input class="input-box login" id="pwd" type="password" placeholder="Password" name="Password" onfocus="this.placeholder = '', this.parentNode.style.color = 'white'" onblur="this.placeholder = 'Password'">
        </div>

        <div class="textbox sign-up-textbox">
            <i class="fas fa-lock"></i>
            <input class="input-box" id="cpwd" type="password" placeholder="Confirm Password" name="Confirm Password" onfocus="this.placeholder = '', this.parentNode.style.color = 'white'" onblur="this.placeholder = 'Confirm Password'">
        </div>

        <div class="textbox sign-up-textbox">
            <i class="far fa-envelope-open"></i>
            <input class="input-box" id="email" type="email" placeholder="Email" name="Email" onfocus="this.placeholder = '', this.parentNode.style.color = 'white'" onblur="this.placeholder = 'Email'">
        </div>
        <button class="submit-btn" type="submit" onclick="validateForm()" name="submit">submit</button>
    </div>
</form>

我是否犯了一个简单的错误,或者是否有其他方法可以用来将这些数据发送到我的数据库?

马泰奥·帕西尼

Bad Request 浏览器(或代理)发送了一个此服务器无法理解的请求 ” 表示您正在尝试通过请求对象访问不存在的请求参数。

所以问题出在这段代码中:

if request.method == "POST":
    username = request.form["uname"]
    first_name = request.form["fname"]
    last_name = request.form["lname"]
    password = request.form["pwd"]
    email = request.form["email"]
    add_new = add_text(username, first_name, last_name, password, email)
    print("success")

我建议你打印 request.form 的内容print(str(request.form)),它是一个字典,这样你就可以看到传递给端点的参数。

给定您的 html 代码,代码将变为

if request.method == "POST":
    username = request.form["Username"]
    first_name = request.form["First Name"]
    last_name = request.form["Last Name"]
    password = request.form["Password"]
    email = request.form["Email"]
    add_new = add_text(username, first_name, last_name, password, email)
    print("success")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Python而不是PHP将ios应用程序与mysql数据库连接

如何使用Flask将数据从JS发送到Python?

无法使用Flask从MySQL数据库将数据检索到html中

如何使用Python将NULL数据插入MySQL数据库?

如何将数据从Firebase发送到Android / iOS应用程序和Python

如何使用Python将Google App Engine连接到外部Mysql数据库

使用NodeMCU ESP8266将Arduino数据发送到mySQL数据库

如何使用变量将python中的数据插入到mysql数据库中?

使用时如何构造Flask库以在应用程序或数据库上注册?

如何将数据从AWS IoT发送到Mysql数据库?

Android应用程序不会将图片发送到数据库PHP MYSQL

使用flask和Ajax将数据从html传递到mysql数据库

如何从PYTHON使用mysql-connector将MySQL数据库导出到json?

使用python库mysql.connector将csv插入MySQL数据库

使用Flask(Python)从MySQL数据库中获取“某些”数据

如何修复将数据插入数据库mysql python

如何将python列表发送到C ++应用程序等待输入?

如何使用Python将图像保存在mysql数据库中?

如何使用PHP将时间发送到MySql数据库?

如何使用python将数据记录插入MySQL数据库?

Flask和Python如何使搜索引擎获取mysql数据库中的数据

Python Flask Search MySQL数据库出现()

如何将带有空格的文本从Android发送到MySQL数据库

如何将 id 从 Flask 应用程序传递到 mysql 数据库

如何使用 PHP 将 HTML 输入字段发送到我的 MySQLi 数据库?

如何让用户输入文本到字段,将文本发送到数据库,然后显示在页面上?

如何快速将文本文件的内容发送到mysql数据库

Python Flask - 如何制作,以免在 MySQL 数据库中注册重复的用户名

如何保存来自 dbc.Modal 的输入并在 Python Dash 应用程序中写入 mySql 数据库?