1

我是 Python、Flask 和 HTML 的新手。我有一个包含 DeptManager、Product 和 SellStatus 的 SQL Server 表 Products(可能是、否或不确定)。表结构:

[ManagerGUID], [ManagerName], [ProductName], [SellStatus]
------------------------------------------------------------
[wqew-2324-4543], [Sandy],[Sony 55 inch TV], [Not Sure]

[wqea-1324-4533], [Sandy],[Sony 65 inch TV], [Yes]

[wqev-2354-4523], [Sandy],[LG 55 inch TV], [No]

[wqsd-2124-4573], [Andy],[LG Stove], [Not Sure]

[wafw-2374-4548], [Andy],[Kitchen Aid Fridge], [Yes]

我需要为每个部门经理创建一个网页,他们可以在其中看到自己的产品列表,他们可以选择是否仍然销售产品,并在需要时更改状态。

所以基本上我需要从数据库表列中的值生成一个单选按钮 - 每行一个单选按钮组,其值为是、否和不确定。它应该从数据库表中读取当前产品并为每个产品的单选按钮组填充当前的销售状态值,然后当部门经理选择不同的值并单击提交时,它应该在同一个表中插入新值。

我能够创建一个可以显示产品名称和单选按钮的网页。但我无法从数据库表中读取单选按钮值。

蟒蛇代码:

    from flask import Flask, render_template, session, redirect, url_for, request

    import pymssql

from flask_wtf import FlaskForm

    from wtforms import Form, validators, RadioField, SelectField, SubmitField

    from wtforms.validators import data_required

    app = Flask(__name__)

    app.config['SECRET_KEY'] = 'mykey'

    class InfoForm(FlaskForm):
        SellStatus = RadioField('', choices=[('Yes', 'Yes'), ('No', 'No'), ('Not Sure', 'Not Sure')])
        Submit = SubmitField('Submit')

    @app.route('/<BGUID>', methods=['POST', 'GET'])

    def index(BGUID):
       #option = request.form['options']
       conn = pymssql.connect(server='MySQLServer', user='MyUsr', password='MyPaswd', database='MySQLDB')

       cursor = conn.cursor()

       cursor.execute('SELECT [ManagerName], [ProductName], [SellStatus] FROM [dbo].[ProductStatus] WHERE b.[ManagerGuid] = %s', BGUID)

       data = cursor.fetchall()

       conn.close()

       form = InfoForm()

       if request.method =='GET':
        return render_template('basic.html', data = data, form = form)

    if __name__ == '__main__':

        app.run(debug=True)

HTML 代码:

<!DOCTYPE html>
<html lang="en" dir = "ltr">
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <h2>Do you still sell these products?</h2>
        <form method = "post">
        {{form.hidden_tag()}}
        {% for item in data %}
        <tr>
         <td>{{item[1]}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>
         <td>
            <input type="radio" name="ss_{{loop.index}}" value="Yes" checked> Yes &nbsp;&nbsp;&nbsp;
            <input type="radio" name="ss_{{loop.index}}" value="No"> No &nbsp;&nbsp;&nbsp;
            <input type="radio" name="ss_{{loop.index}}" value="Not Sure"> Not Sure &nbsp;&nbsp;&nbsp;
        </td>
        <br><br>
    </tr>
    {% endfor %}
    {{form.Submit()}}
    </form>
    </body>
</html>

我目前正在获取带有单选按钮的特定经理的产品列表,默认为是。例如

你还卖这些产品吗?

索尼 55' 电视 (x)是 ()否 ()不确定

Panasonic 55' 电视 (x)是 ()否 ()不确定

LG DVD 播放器 (x)是 ()否 ()不确定

......

......

但是我需要从表格中读取这些内容,到目前为止我无法弄清楚如何将这些值与表格联系起来。当用户单击提交时,更新表中的新值。请帮忙。提前致谢!

4

0 回答 0