【问题标题】:The dropdown list in my html form is only returning null values to mysql database我的 html 表单中的下拉列表仅将空值返回到 mysql 数据库
【发布时间】:2020-06-11 16:52:27
【问题描述】:

表单的其他部分运行良好。只有等级返回空值。

这是我的 html 代码:

<body>
    <form action="/out" method="post">
        <label for="grade">Grade:&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&ensp;&nbsp;&emsp;</label>
        <select class="form-control" name="grade" id="grade" required>
          <option value="N121" selected>N121</option>
          <option value="N134">N134</option>
          <option value="N220">N220</option>
          <option value="N234">N234</option>
          <option value="N326">N326</option>
          <option value="N330">N330</option>
          <option value="N339">N339</option>
          <option value="N375">N375</option>
          <option value="BC2056">BC2056</option>
          <option value="BC2109">BC2109</option>
          <option value="JETCARB300">JETCARB300</option>
        </select><br>
        <label for="TPD">Production Rating (TPD):&emsp;</label>
        <input type="number" name="TPD" step="0.001" placeholder="0.000" required><br>
        <label for="plant_load">Plant Load:&emsp;&emsp;&emsp;&emsp;&emsp;&ensp;&nbsp;&emsp;</label>
        <input type="number" name="plant_load" step="0.001" placeholder="0.000" required><br>
        <button type="submit" name="submit">submit</button>        
   </form>
</body>

python 代码:

from flask import Flask, render_template, request
import os
import mysql.connector
from flaskext.mysql import MySQL
mysql=MySQL()
app=Flask(__name__,template_folder='templates1')
app.config['MYSQL_DATABASE_USER'] ="root"
app.config['MYSQL_DATABASE_PASSWORD'] = ""
app.config['MYSQL_DATABASE_DB'] ="db"
app.config['MYSQL_DATABASE_HOST'] = "127.0.0.1"
mysql.init_app(app)
con=mysql.connect()
cursor=con.cursor()
@app.route("/")
def input():
  return render_template("power_advisor1.html")
@app.route("/out", methods=['POST'])
def output():
    grade= request.form.get("grade")
    TPD= request.form.get("TPD")
    plant_load= request.form.get("plant_load")
    cursor.execute("INSERT into input(grade,TPD,plant_load) values(%s,%s,%s)" , (grade, TPD, plant_load))
    con.commit()
    return render_template("output.html")

问题很可能出在html部分

我们将不胜感激。谢谢!

this is the error I get when I use request.form instead of request.form.get

【问题讨论】:

    标签: python html mysql flask


    【解决方案1】:

    我再次编写了整个代码并在本地运行,它对我来说很好。但是我没有数据库架构,所以我评论了该代码。 还要确保你告诉我你有没有app.run(debug=True)

    @app.route("/out", methods=['POST'])
    def output():
        grade= request.form["grade"]
        TPD= request.form["TPD"]
        plant_load= request.form["plant_load"]
        txt1 = "{grade} {TPD} {plant_load}".format(grade = grade, TPD = TPD, plant_load=plant_load)
    
        # cursor.execute("INSERT into input(grade,TPD,plant_load) values(%s,%s,%s)" , (grade, TPD, plant_load))
        # con.commit()
        return txt1
    
    <form action="{{ url_for('output') }}" method="post">
            <label for="grade">Grade:&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&ensp;&nbsp;&emsp;</label>
            <select class="form-control" name="grade" id="grade" required>
                <option value="N121" selected>N121</option>
                <option value="N134">N134</option>
                <option value="N220">N220</option>
                <option value="N234">N234</option>
                <option value="N326">N326</option>
                <option value="N330">N330</option>
                <option value="N339">N339</option>
                <option value="N375">N375</option>
                <option value="BC2056">BC2056</option>
                <option value="BC2109">BC2109</option>
                <option value="JETCARB300">JETCARB300</option>
            </select><br>
            <label for="TPD">Production Rating (TPD):&emsp;</label>
            <input type="number" name="TPD" step="0.001" placeholder="0.000" required><br>
            <label for="plant_load">Plant Load:&emsp;&emsp;&emsp;&emsp;&emsp;&ensp;&nbsp;&emsp;</label>
            <input type="number" name="plant_load" step="0.001" placeholder="0.000" required><br>
            <button type="submit" name="submit">submit</button>        
        </form>
    

    【讨论】:

    • 将 action="/out" 更改为 action="{{ url_for('output') }}"
    • 我在我的系统中再次编写了整个内容,它运行良好,但请检查并告诉我
    • 它继续给出同样的错误。 Grade 是 string 类型,其余的是 float,如果有帮助的话。
    • 能否请您发送错误的完整截图
    猜你喜欢
    • 2016-12-08
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多