IF заявление в python с request.form.get () - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь сделать «INSERT INTO table (...)» в базе данных SQlite в зависимости от того, какую опцию пользователь выбирает на моем сайте.Вот часть моего html (вверху) и python (внизу):

<form action="/calendar" method="post" autofocus name="name" placeholder="name" type="text">
        <div class="form-group">
            <select class="form-control" name="expenses">
                <option disabled selected value>Expenses</option>
                    <option value="home">home expense</option>
                    <option value="food">food expense</option>
                    <option value="child">child expense</option>
                    <option value="debt">debt expense</option>
                    <option value="healthcare">healthcare expense</option>
                    <option value="transportation">transportation expense</option>
                    <option value="personalcare">personalcare expense</option>
                    <option value="petcare">petcare expense</option>
                    <option value="entertainment">entertainment expense</option>
                    <option value="others">others expense</option>

            </select>


if request.method == "POST":
        # return apology page if anything isn't provided correctly
        note = request.form.get("note")
        amount = float(request.form.get("amount"))
        if amount < 0:
            return apology("provide positive amount")

        if request.form.get("home"):

            db.execute("INSERT INTO home (id, amount, note, date) VALUES(:id, :amount, :note, :date)", id=session["user_id"], amount=usd(amount), note=note, date=now.strftime("%Y-%m-%d %H:%M:%S"))

        elif request.form.get("food"):

            db.execute("INSERT INTO food (id, amount, note, date) VALUES(:id, :amount, :note, :date)", id=session["user_id"], amount=usd(amount), note=note, date=now.strftime("%Y-%m-%d %H:%M:%S"))

Если я не использую оператор if, он вставляет данные правильно, а с оператором if - нет.Может ли кто-нибудь дать мне объяснение этому или альтернативные способы достижения того же результата с помощью Python и базы данных SQLite?

1 Ответ

0 голосов
/ 16 февраля 2019

Нет формы ввода с name="home" или name="food".Это просто значения параметров в <select>, чье имя expenses.То, что вы хотите:

expenses = request.form.get("expenses")
if expenses == "home":
    db.execute("INSERT INTO home (id, amount, note, date) VALUES(:id, :amount, :note, :date)", id=session["user_id"], amount=usd(amount), note=note, date=now.strftime("%Y-%m-%d %H:%M:%S"))
elif expenses = "food":
    db.execute("INSERT INTO food (id, amount, note, date) VALUES(:id, :amount, :note, :date)", id=session["user_id"], amount=usd(amount), note=note, date=now.strftime("%Y-%m-%d %H:%M:%S"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...