Поиск текста в Flask и Python с использованием фляги-whooshalchemy - PullRequest
0 голосов
/ 26 сентября 2018

Я прошел аналогичную публикацию в текстовом поиске, используя Flask-WhooshAlchemy.Но ни один из результатов поиска не дает конкретных результатов, и ни один из этих адресных чертежей.

Моя задача состоит в поиске текста с использованием фляги и python из базы данных.Моя база данных - MySQL, и я использую для этого SQLAlchemy.

Моя структура программы выглядит следующим образом:

BlogPost
    Admin
    __init__.py
    forms.py
    views.py
    User
     __ init__.py
    forms.py
    views.py
__init__.py
models.py

init .py:

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import flask_whooshalchemy as whooshalchemy
app.config['SECRET_KEY'] = 'mysecret'
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] =      'sqlite:///'+os.path.join(basedir,'app_v29.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['WHOOSE_BASE'] = 'sqlite:///'+os.path.join(basedir,'app_v29.db') 

models.py

import flask_whooshalchemy as whooshalchemy
from BlogPost import app

class Task_Add(db.Model):
    __searchable__ =['task_add']

    id = db.Column(db.Integer,primary_key=True)
    task_add = db.Column(db.String(64))
    def __init__(self,task_add):
        self.task_add = task_add

   def __repr__(self):
        return f"{self.task_add}"  
 whooshalchemy.whoosh_index(app, Task_Add)  

class Invoice_Add(db.Model):
id = db.Column(db.Integer,primary_key=True)
invoice_add = db.Column(db.String(64))
def __init__(self,invoice_add):
    self.invoice_add = invoice_add

def __repr__(self):
    return f"{self.invoice_add}"

views.py

@adminDash.route('/view_task')
def view_task():
    task_all=Task_Add.query.all()
    return render_template('admin/view_task.html',task_all=task_all)

@adminDash.route('/search_task')
def search_task():
    q=request.args.get('query')
    task_all=Task_Add.query.whoosh_search(q).all()
    return render_template('admin/view_task.html',task_all=task_all)

view_task.html

  <div class="col-sm-3 col-sm-offset-1 blog-sidebar">
              <div class="sidebar-module sidebar-module-insert">
                <form class="form-inline" method="GET" action="{{url_for('adminDash.search_task')}}">
                  <div class="form-group">
                    <input type="text" class="form-control" name="query" id="query">
                      <button type="submit" class="btn btn-primary">Search</button>
                  </div>
                </form>
              </div>
              </div>
            <!-- .card -->
            <section id="base-style" class="card">
              <!-- .card-body -->
              <div class="card-body">
                <!-- .form -->
                <div class="lits-group list-group-flush">
                  <!-- .lits-group-item -->
                  <!-- .table-responsive -->
                               <div class="table-responsive">
                                 <!-- .table -->
                                 <table class="table table-sm mb-0">
                                   <!-- thead -->
                                   <thead class="thead-">
                                     <tr>
                                       <th><font color="#0f1f94"> Task</font></th>
                                       <th><font color="#0f1f94"> Delete</font></th>
                                     </tr>
                                   </thead>
                                   <!-- /thead -->
                                   <!-- tbody -->
                                   <tbody>
                                     <!-- tr -->
                                     <tr>
                                       {% for task_in in task_all %}
                                       <td> {{task_in.task_add}} </td>
                                       <td>
                                         <form action="{{url_for('adminDash.delete_task',task_post_id=task_in.id)}}" method="POST">
                                           <button type="submit" class="far fa-trash-alt"></button>
                                         </form>
                                       </td>
                                     </tr>
                                      {% endfor %}
                                 </tbody>
                               </table>
                             </div>

          <!-- .lits-group-item -->
                </div>


              </div>
    </div>

Когда я ищу запрос в кнопке поиска, он отправляеттекст в / search_task, но

task_all=Task_Add.query.whoosh_search(q).all()

дает [] в результатах, хотя, если запрос с использованием

task_all=Task_Add.query.all()

, он выдаст запрос.

Спасибо, дайте мне знатьгде я ошибаюсьА как использовать Flask-WhooshAlchemy в чертежах?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...