>source

기본 페이지에서 사용자 입력을 수용하는 postgres 및 SQL 연금술(파이썬 code용)을 사용하는 플라스크 앱이 있습니다. 입력(POST 요청인 경우)을 취하고 내 데이터베이스의 해당 입력으로 필터링합니다 리뷰에서 사용자의 검색 입력이 있는 리뷰를 찾습니다(리뷰 웹사이트가 있기 때문에). 그러나 페이지를 새로 고칠 때 마지막 POST 요청에서 여전히 리뷰를 얻고 제거할 수 없습니다. 어떻게 해야 할까요?

그러나 동일한 페이지의 POST 요청 후 html에 표시되는 데이터를 다른 넷 페이지로 리디렉션하지 않고 유지하고 싶습니다.

플라스크

def filter_reviews(search_value):
    # Update search value
    search_value= '%' + search_value.lower().strip() + '%'
    # Get all reviews that match search value
    reviews= Reviews.query.filter(Reviews.comments.like(search_value)).all()
    return reviews
# Home page
@main.route("/", methods=['GET','POST'])
def index():
    # Container to hold reviews that match search value
    matching_reviews= []
    # User has submitted form input
    if request.method== 'POST':
        form_data= request.form
        # Grab the form data
        search_value= form_data['searchTerm']
        print(search_value)
        matching_reviews.clear()
        matching_reviews= filter_reviews(search_value)
    # Paginate /Pagination is where we split items (posts/reviews) into separate pages for readability
    # and also to prevent longer loading times for each page
    page= request.args.get('page', 1, type= int) # default 1, type int
    # Grab 6 posts per page (default)
    posts= Reviews.query.order_by(Reviews.date.desc()).paginate(page= page, per_page= 6)
    return render_template("index.html", reviews=posts, matching_reviews=matching_reviews)

index.html

<div class="row">        <form action="{{ url_for('main.index') }}" method="POST" class="col s12">          <div class="row">            <div class="input-field col s12">              <input type="text" name="searchTerm"/><label for="textarea1">enter your search term</label>            </div>          </div>        </form>    </div>    <section id="reviews">        <div class="review-box-container">            <!--Get all the data from mongodb database that matched post search term-->            {% for review in matching_reviews %}
            <div class="review-box">                <div class="box-top">                    <div class="profile">                        <div class="profile-img">                            <img src="{{ url_for('static', filename='images/Lincoln-Logo.png') }}" width="50" height="50" alt="profile">                        </div>                        <div class="name-user">                            <strong>{{ review.user_name }}</strong>                            <span> {{ review.date.strftime('%Y-%m-%d') }}</span>                        </div>                    </div>                    <div class="review-content">                        {% if review.overall_rating== 1 %}
                        <i class="fas fa-star"></i>                        <i class="far fa-star"></i>                        <i class="far fa-star"></i>                        <i class="far fa-star"></i>                        <i class="far fa-star"></i> <!--Holo star -->                        {% endif %}
                        {% if review.overall_rating== 2 %}
                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="far fa-star"></i>                        <i class="far fa-star"></i>                        <i class="far fa-star"></i>                        {% endif %}
                        {% if review.overall_rating== 3 %}
                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="far fa-star"></i>                        <i class="far fa-star"></i>                        {% endif %}
                        {% if review.overall_rating== 4 %}
                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="far fa-star"></i>                        {% endif %}
                        {% if review.overall_rating== 5 %}
                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        <i class="fas fa-star"></i>                        {% endif %}
                    </div>                </div>                <div class="review-comment">                    

{{ review.comments}}

</div> </div> {% endfor %} </div> </section>

이것이 귀하의 질문에 대한 답변입니까? "post/redirect/get" 패턴 이해하기. 플라스크에서 포스트/리디렉트/Get 패턴.

Dušan Maďar2022-02-07 10:40:11

@DušanMaďar Err 종류입니다. 그래서 포스트에 템플릿을 렌더링하지 않으려면 어떤 접근 방식을 취해야 하나요?

patricebailey19982022-02-07 10:46:56
  • 이전 java : XOR은 고유한 값을 찾는 데 어떻게 도움이 됩니까?
  • 다음 python 프로그램을 실행할 때 pycharm은 어떤 특수 처리를 수행합니까?