трудности с настройкой и использованием Flask_whooshalchemy

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

   Post.query.whoosh_search('phone').all()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Abdul\Anaconda3\lib\site-packages\flask_whooshalchemy.py", line 103, in whoosh_search
    if not isinstance(query, unicode):
NameError: name 'unicode' is not defined

это как-то связано с тем, что python 3 переименовал Unicode в str пару лет назад или это что-то еще? Я попытался изменить Unicode на str, но это не решило проблему? любой полезный вклад будет оценен.


person abood bah    schedule 27.11.2019    source источник
comment
проверьте этот вопрос stackoverflow.com/questions/4987327/   -  person Alex Pshenko    schedule 27.11.2019
comment
Библиотека, которую вы пытаетесь использовать, не поддерживает Python 3: github.com/gyllstromk/ Колба-WhooshAlchemy/issues/60   -  person Ilja Everilä    schedule 27.11.2019


Ответы (1)


Отказ от ответственности: Flask_whooshalchemy больше не поддерживается и не работает с python 3.0+.

Решение: вам нужно либо использовать собственное решение, либо использовать Flask m-search, который отлично работает.

Вот ссылка на flask m-search на случай, если у кого-то возникнет такая же проблема.

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

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_msearch import Search

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
search = Search()
search.init_app(app)

class User(db.Model):
    __searchable__ = ['id', 'username', 'email']
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return '<User %r>' % self.username
person abood bah    schedule 06.01.2020