Как сделать поиск в БД при вводе слова в текстовое поле и нажатии на кнопку?
Если ввожу слово "Калина обыкновенная", то в результате на форме должно появиться сообщение:
Калина обыкновенная -> Калина -> Адоксовые
Здесь "Калина обыкновенная" это поле name в таблице species; "Калина" - это name в таблице genus; "Адоксовые" - это name в таблице family.
...
class Family(db.Model):
__tablename__ = 'family'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(40))
with_species = db.relationship('Species', backref='family')
class Genus(db.Model):
__tablename__ = 'genus'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(40))
with_species = db.relationship('Species', backref='genus')
class Species(db.Model):
__tablename__ = 'species'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(40))
genus_id = db.Column(db.Integer, db.ForeignKey('genus.id'))
family_id = db.Column(db.Integer, db.ForeignKey('family.id'))
class SpeciesForm(FlaskForm):
find = StringField('название')
findButton = SubmitField('найти')
@app.route('/species', methods=['GET', 'POST'])
def species():
form = SpeciesForm()
if form.validate_on_submit():
...
return render_template('species.html', species=species, form=form)
return render_template('species.html', form=form)
{% extends "index.html" %}
{% block content %}
<div id="content">
<form action="" method="POST">
{{ form.hidden_tag() }}
<div class="items">
<div class="item">
<i>Поиск</i>
<br><br>
{{ form.find.label }} {{ form.find() }}
<br><br>
{{ form.findButton }}
</div>
</div>
</form>
</div>
{% endblock %}