难以设置和使用 Flask_whooshalchemy
difficulty setting up and using Flask_whooshalchemy
我目前正在开发一个带有大型数据库的 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
这与 python 3 几年前将 Unicode 重命名为 str 有什么关系还是别的什么?我尝试将 Unicode 更改为 str,但这似乎没有解决问题?
任何有用的输入将不胜感激。
免责声明:Flask_whooshalchemy 不再受支持并且不适用于 python 3.0+。
解决方案:您要么必须使用自定义解决方案,要么使用效果很好的 Flask m-search。
这里有一个 link 到 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 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
这与 python 3 几年前将 Unicode 重命名为 str 有什么关系还是别的什么?我尝试将 Unicode 更改为 str,但这似乎没有解决问题? 任何有用的输入将不胜感激。
免责声明:Flask_whooshalchemy 不再受支持并且不适用于 python 3.0+。
解决方案:您要么必须使用自定义解决方案,要么使用效果很好的 Flask m-search。
这里有一个 link 到 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