【问题标题】:How to insert check box value in MYSQL using Flask如何使用 Flask 在 MYSQL 中插入复选框值
【发布时间】:2021-06-15 13:08:23
【问题描述】:

我在 HTML 中有三个复选框,我在 Python 中获得了复选框值。如果我选​​择复选框,则表示该值应在 MYSQL 数据库中插入为“是”,否则应插入为“否”。我试过但我不知道如何获得答案。请帮助我,在此先感谢:)

这是我的代码: HTML:

<form action='/hello' method="POST" enctype="multipart/form-data">
Panchayath <input type="checkbox" name="checks[]" value="yes" id="panchayath"><br>
     Ward  <input type="checkbox" name="check[]" value=" yes" id=" ward"><br>
    Results  <input type="checkbox" name="chec[]" value=" yes" id=" results">
    <input type="submit" value="Submit">
</form>

py:

import os
from flask import Flask, request, render_template
from flaskext.mysql import MySQL

mysql = MySQL()

app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE_DB'] = 'bucketlist'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)
APP_ROOT = os.path.dirname(os.path.abspath(__file__))


@app.route('/hello', methods=['GET', 'POST'])
def get_data():
    print("hlo")
    if request.method == 'POST':
        print("cat")
        panchayath = request.form.getlist('checks[]')
        print panchayath
        ward = request.form.getlist('check[]')
        print ward
        Results = request.form.getlist('chec[]')
        print Results
        conn = mysql.connect()
        cursor = conn.cursor()
        # cursor.execute()
        print "yes"
        # cursor.execute("insert into try_chk3  values (%s,%s,%s)", (some_var))
        # query = "CREATE TABLE saracheck( panchayath  VARCHAR(40), ward VARCHAR(40),Results VARCHAR (40))"
        # cursor.execute(query)
        query = "INSERT INTO saracheck(panchayath,ward,Results) VALUES(%s,%s,%s)"
        a=cursor.execute(query, (panchayath,ward,Results))
        print a
        print "execuet"
        # cursor.execute(query,(first_name,last_name,email_id,can_pic,logo_pic))
        conn.commit()


    return render_template("form.html")


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

输出: enter image description here

【问题讨论】:

    标签: python html mysql


    【解决方案1】:

    首先,您为什么要命名“checks”、“check”和“chec”之类的字段,它们要么看起来都是 name = "checks[]",要么只是命名方式不佳。

    您不是要获取所有三个字段的值吗?那么你应该尝试得到他们三个中的Results 对吗?

    您能否也发布到目前为止您得到的输出?

    【讨论】:

    • 我是python新手,如果选中,我想在数据库中插入复选框值?
    • 我在上面发布了我的输出页面
    【解决方案2】:
     <label for="">Amenities Required</label><br>
     <input type="checkbox" name="users" value="Bike" checked> I have a bike<br>
     <input type="checkbox" name="users" value="Car"> I have a car<br>
     <input type="checkbox" name="users" value="Boat" > I have a boat<br>
     <input type="checkbox" name="users" value="cycle"> I have a cycle<br>
     <input type="checkbox" name="users" value="wagnor"> I have a wagnor<br>
     <input type="checkbox" name="users" value="safari" > I have a safari<br>
    
          if request.method=='POST':
          amin=request.form.getlist("users")
          str1 = ','.join(amin)
          c.execute("INSERT INTO tablename VALUES(%s)",[str1])
    

    【讨论】:

      【解决方案3】:
      '''
      <div class="row">
          <div class="col-lg-4 col-sm-6">
            <input type="checkbox" name="clinic_info" value="Clinial abnormalities">&nbsp; Clinial abnormalities 
          </div>
          <div class="col-lg-4 col-sm-6">
            <input type="checkbox" name="clinic_info" value="Cytological abnormalities">&nbsp; Cytological abnormalities
          </div>
          <div class="col-lg-4 col-sm-6">
            <input type="checkbox" name="clinic_info" value="Low grade(L-SL)HPV"> &nbsp;Low grade(L-SL)HPV
          </div>
      </div>
      
      '''
      
      
      
      @app.route('/index', methods=['POST','GET'])
      def index():
          if request.method == 'POST':
              clinical_info = request.form.getlist('clinic_info')
              cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
              clinical_info = ','.join(clinical_info)
              values = (clinical_info)
              cursor.execute('INSERT INTO table (table_name) VALUES (%s)',values)
              mysql.connection.commit()
              return 'You have successfully send to mysql database!'
          return render_template('clinical.html')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-08
        • 2015-07-07
        • 1970-01-01
        • 1970-01-01
        • 2014-10-15
        • 1970-01-01
        • 2016-01-27
        • 1970-01-01
        相关资源
        最近更新 更多