コード例 #1
0
 def _init_storage(self, storage):
     if isinstance(storage, StorageBackend):
         self.storage = storage
     else:
         # If a StorageBackend isn't provided, use the default
         # SQLAlchemy backend.
         from sphinx.websupport.storage.sqlalchemystorage \
             import SQLAlchemyStorage
         if not storage:
             # no explicit DB path given; create default sqlite database
             db_path = path.join(self.datadir, 'db', 'websupport.db')
             ensuredir(path.dirname(db_path))
             storage = 'sqlite:///' + db_path
         self.storage = SQLAlchemyStorage(storage)
コード例 #2
0
from werkzeug import SharedDataMiddleware

from whoosh.fields import Schema, ID, TEXT, NGRAM

import os
import cPickle as pickle

ROOT = os.path.dirname(os.path.abspath(__file__))
SRCDIR = os.path.join(ROOT, 'source')
BUILDDIR = os.path.join(ROOT, 'build', 'web')
INDEXDIR = os.path.join(BUILDDIR, "data", "db")

print("SRC:{0}, BUILD:{1}, INDEX:{2}".format(SRCDIR, BUILDDIR, INDEXDIR))

uri = os.environ.get('DATABASE_URL')  # DATABSE_URL is given
storage = SQLAlchemyStorage(uri)

whoosh = whooshsearch.WhooshSearch
whoosh.schema = Schema(path=ID(stored=True, unique=True),
                       title=TEXT(field_boost=2.0, stored=True),
                       text=NGRAM(stored=True))
search = whoosh(INDEXDIR)

support = WebSupport(srcdir=SRCDIR,
                     builddir=BUILDDIR,
                     search=search,
                     storage=storage)

#### flask part

from flask import Flask, render_template, abort, g, request, jsonify, url_for