Python 设置和使用Vask_Whoosh炼金术有困难

Python 设置和使用Vask_Whoosh炼金术有困难,python,flask,sqlalchemy,whoosh,Python,Flask,Sqlalchemy,Whoosh,我目前正在开发一个带有大型数据库的flask web应用程序,这意味着我不得不放弃最初为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-

我目前正在开发一个带有大型数据库的flask web应用程序,这意味着我不得不放弃最初为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
这与几年前Python3将Unicode重命名为str有什么关系吗?还是其他原因?我试着将Unicode改为str,但这似乎并没有解决问题?
任何有用的输入都将不胜感激。

免责声明:Flask_whooshalchemy不再受支持,并且不适用于python 3.0+

解决方案:您要么使用自定义解决方案,要么使用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

免责声明:Flask_whooshalchemy不再受支持,并且不适用于python 3.0+

解决方案:您要么使用自定义解决方案,要么使用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

检查此问题您尝试使用的库不支持Python 3:检查此问题您尝试使用的库不支持Python 3: