I'm trying to do something real simple (so I thought), but having some problems a couple hours of research has failed to resolve.
Simply put I'm trying to take 2 form data entries(using Flask-WTForms) and query the values entered against a table. A basic search function.
I've managed to get to the point that I can see SQLAlchemy running A query, just not having any luck with it and triggering the rollback().
2016-01-27 03:27:39,127 INFO sqlalchemy.engine.base.Engine BEGIN (implicit)
2016-01-27 03:27:39,128 INFO sqlalchemy.engine.base.Engine SELECT "Motor"."Asset Tag" AS "Motor_Asset Tag", "Motor"."Horsepower" AS "Motor_Horsepower"
FROM "Motor"
WHERE "Motor"."Asset Tag" AND "Motor"."Horsepower"
2016-01-27 03:27:39,128 INFO sqlalchemy.engine.base.Engine {}
2016-01-27 03:27:39,129 INFO sqlalchemy.engine.base.Engine ROLLBACK
Here are some code snippets.
View:
@app.route('/searchassets', methods=['GET', 'POST'])
def searchassets():
form = SearchAssetsForm()
results = None
if request.method == "POST":
try:
asset_tag = form.asset_search.data
horsepower = form.horsepower_search.data
results = Motor.query.filter(Motor.asset_tag, Motor.horsepower).all()
except:
db.session.rollback()
flash("Error.")
return render_template('searchassets.html', form=form, results=results)
return render_template('searchassets.html', form=form, results=results)
Form Model:
class SearchAssetsForm(Form):
asset_search = StringField('asset_search')
horsepower_search = IntegerField('horsepower_search')
Template:
{% extends "basehead.html" %}
{% block content %}
<center>
<br>
<div class="container">
<h1>Search Asset Attributes Below</h1>
<br>
<form action="" method="post" name="submit">
{{ form.hidden_tag() }}
<p>
{{ form.asset_search(placeholder=" Enter Asset Tag") }}
</p>
<p>
{{ form.horsepower_search(placeholder=" Enter Horsepower") }}
</p>
<input class="btn btn-default" type="submit" value="Submit">
</form>
<br>
<table>
<th> </th>
<th>Asset Tag</th>
<th>Horsepower</th>
<tr>
<td>{% print(results.asset_tag) %}</td>
<td>{% print(results.horsepower) %}</td>
</tr>
</table>
</center>
{% endblock %}