Форма поиска всегда не показывает результатов Python-flask - PullRequest
0 голосов
/ 11 марта 2019

Привет, я новичок в stackoverflow, поэтому, пожалуйста, прости, если я допустил какие-либо ошибки. Я пытаюсь добавить форму поиска в свое приложение, но даже если я даю значения, присутствующие в базе данных, она всегда показывает, что неттакие данные.Я использую Python в качестве моего бэкэнда и колбу в качестве основы.

@app.route("/search",methods=['GET', 'POST'])
def search():
    form = Search(request.form)
    if form.validate_on_submit():
        city = form.city.data
        blood = form.blood.data
        results = User.query.filter_by(blood_type=blood,city=city).all()
        if not results:
            flash('No results found!')
        else:
            return render_template('result.html',results=results)    
    return render_template('search.html',form=form)

Вот форма

class Search(FlaskForm):
    blood = StringField('Blood',validators=[DataRequired()])
    city = StringField('City',validators=[DataRequired()])
    submit = SubmitField('Search')

Таблица базы данных

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True,nullable=False)
    email = db.Column(db.String(100), unique=True,nullable=False)
    image_file = db.Column(db.String(20),nullable=False, default='default.jpg')
    password = db.Column(db.String(60),nullable=False)
    blood_type = db.Column(db.String(20), nullable=False)
    phone_no = db.Column(db.String(20),nullable=False)
    city = db.Column(db.String(30), nullable = False)
    address = db.Column(db.Text,nullable=False)
    post = db.relationship('Post',backref='author', lazy=True)

Страница поиска

<div class="content-section">
    <form method="POST" action="search">
            {{ form.hidden_tag() }}
            <fieldset class="form-group">
                    <div class="form-group">
                            {{ form.city.label(class="form-control-label") }}
        
                            {% if form.city.errors %}
                                {{ form.city(class="form-control form-control-lg is-invalid") }}
                                <div class="invalid-feedback">
                                    {% for error in form.city.errors %}
                                        <span>{{ error }}</span>
                                    {% endfor %}
                                </div>
                            {% else %}
                                {{ form.city(class="form-control form-control-lg") }}
                            {% endif %}
                        </div>
                        <div class="form-group">
                                {{ form.blood.label(class="form-control-label") }}
                                {% if form.blood.errors %}
                                    {{ form.blood(class="form-control form-control-lg is-invalid") }}
                                    <div class="invalid-feedback">
                                        {% for error in form.blood.errors %}
                                            <span>{{ error }}</span>
                                        {% endfor %}
                                    </div>
                                {% else %}
                                    {{ form.blood(class="form-control form-control-lg") }}
                                {% endif %}
                            </div>
            </fieldset>
            <div class="form-group">
                    {{ form.submit(class="btn btn-outline-info") }}
            </div>
    </form>
    </div> 

Результаты

{% extends "layout.html" %}
{% block content %}
    {% for results in results %}
        <article class="media content-section">
                      <div class="media-body">
                <a class="mr-2" href="#">{{ results.username }}</a>
                <a class="mr-2" href="#">{{ results.phone_no }}</a>          
          </div>
        </article>
    {% endfor %}
{% endblock content %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...