Прочитайте Сохранить радиокнопки из базы данных на веб-странице Python Flask - PullRequest
0 голосов
/ 11 апреля 2019

Я новичок в Python, Flask & HTML. У меня есть таблица SQL Server Products, которая содержит DeptManager, Product & SellStatus (это может быть да, нет или не уверен). Структура таблицы:

[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]

Мне нужно создать веб-страницу для каждого менеджера отдела, где они видят список своих собственных продуктов и могут выбрать, продавать продукт по-прежнему или нет, и изменить статус, если необходимо.

Таким образом, в основном мне нужно сгенерировать переключатель из значений в столбце таблицы базы данных - группу переключателей в строке со значениями да, нет и не уверен. Он должен прочитать текущий продукт и заполнить текущее значение sellstatus в группе переключателей для каждого продукта из таблицы базы данных, а затем, когда руководитель отдела выбирает другие значения и нажимает кнопку «Отправить», он должен вставить новые значения в ту же таблицу.

Мне удалось создать веб-страницу, которая может отображать названия продуктов и переключатели. Но я не смог прочитать значения переключателей из таблицы базы данных.

Код Python:

    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>

В настоящее время я получаю список продуктов для конкретного менеджера с переключателями, все по умолчанию настроены на Да. Э.Г.

Вы все еще продаете эти продукты?

Sony 55 'TV (x) Да () Нет () Не уверен

Panasonic 55 'TV (x) Да () Нет () Не уверен

LG DVD-плеер (x) Да () Нет () Не уверен

.............

.............

Но мне нужно прочитать их из таблицы, и я до сих пор не мог понять, как связать значения с таблицей. И когда пользователь нажимает кнопку Отправить, обновите новые значения в таблице. Пожалуйста помоги. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...