鱼C论坛

 找回密码
 立即注册
查看: 1587|回复: 1

关于用flask+flask_whooshalchemyplus全文检索问题

[复制链接]
发表于 2018-5-24 11:40:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近学校老师让我们自己学习搜索引擎用python语言的,自己网上查了很多,但还是有问题。如下
__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)


# 配置 sqlalchemy  数据库驱动://数据库用户名:密码@主机地址:端口/数据库?编码
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123456@localhost:3306/BYSJ?charset=utf8'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['WHOOSH_BASE'] = 'path/to/whoosh/base'

# 初始化
db = SQLAlchemy(app)


models.py
from jieba.analyse.analyzer import ChineseAnalyzer
import flask_whooshalchemyplus
from __init__ import db, app


class filemessage(db.Model):
    __tablename__ = 'filemessage'
    __searchable__ = ['title', 'content']
    __analyzer__ = ChineseAnalyzer()
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.Unicode)
    content = db.Column(db.Text)


flask_whooshalchemyplus.init_app(app)


view.py
from flask import render_template, request
from flask_bootstrap import Bootstrap
from flask_whooshalchemyplus import index_all
from __init__ import *
from models import filemessage
app = Flask(__name__)
bootstrap = Bootstrap(app)


@app.route('/')
def home():
    index_all(app)
    return render_template('search_results.html')


@app.route('/search', methods=['GET'])
def search_results():
    query = request.args.get('search')
    results = filemessage.query.whoosh_search(query).all()
    return render_template('search_results.html', results=results)


if __name__ == '__main__':
    app.debug = True
    app.run()




#前端
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
    <form action="{{url_for('search')}}" method="get">
          <input type="text" placeholder="站内搜索" name="search" >
          <button type="submit">搜索</button>
      </form>
</div>
<div>
<ul>
    {% for post in results %}
    <li>
        <div>
            <div>
                {{ post.title }}
                {{ post.content }}
            </div>
        </div>
    </li>
    {% endfor %}
</ul>
</div>
</body>
</html>

错误如下:
1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-5-24 11:41:33 | 显示全部楼层
flask新手,希望有大神来解读。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-10 06:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表