я не могу получить данные с кодом формы запроса от html до приложения на flask - PullRequest
1 голос
/ 27 февраля 2020

Я так много раз пытался исправить поток, но не могу найти его, помогите мне, где я не прав. когда я хочу взять данные из формы, он говорит, что не определена переменная.

Я уже создал базу данных и хочу сравнить с этой базой данных и пользовательским вводом, а затем показать те же результаты на странице.

РЕДАКТИРОВАТЬ: I CANT получить значение 'veri' с request.form ['veri']

class Products(db.Model):
    id= db.Column(db.Integer, primary_key=True)
    french_name = db.Column(db.String(200), nullable=False)
    german_name = db.Column(db.String(200), nullable=False)
    quantity = db.Column(db.Integer, default=1)
    price = db.Column(db.Float, nullable=False)
    unit = db.Column(db.String(10), nullable=False)

    def __repr__(self):
        return '<Products %r>' % self.french_name

@app.route("/")
def index():
    return render_template("index.html")

@app.route("/french")
def french():
    return render_template("french.html")

@app.route("/german")
def german():
    return render_template("german.html")

@app.route("/products", methods=['POST','GET'])
def products():
    if request.method =='POST':
        veri = request.form['veri']
        search = Products.query.filter_by(german_name=veri)
        return redirect(url_for('products.html',search=search))
    else:
        return render_template("products.html")

, и это мой html:

<form action="/products" method="POST">
<input type="text" name="veri">
<input type="submit" value="Search">
</form>

<div>
    <table>
      {{search.name}}, {{ search.id }} , {{search.quantity}}

    </table>
</div>

{% endblock %}

Ответы [ 2 ]

0 голосов
/ 18 марта 2020
Products.query.filter_by(german_name=request.form.get('search')).all()

- это решение, которое я нахожу

0 голосов
/ 28 февраля 2020

Вот пример для доступа к переменной формы. Ваша переменная вопроса (доступ к входным данным формы) не связана с базой данных, моделями и другими представлениями, которыми вы поделились.

@app.route("/")
def index():
    return render_template("index.html")

@app.route('/products', methods=['POST'])
def products():
    veri = request.form['veri']
    print(veri)
    return f'here is veri: {veri}'

index. html

<form action="/products" method="POST">
<input type="text" name="veri">
<input type="submit" value="Search">
</form>
...