如何在Flask python应用程序中运行Elasticsearch实例?

时间:2014-11-08 21:45:17

标签: python elasticsearch flask

我正在尝试使用Flask python框架创建一个带有Elasticsearch实例的服务器。我有以下简单的代码:

from flask import Flask, render_template
from flask_bootstrap import Bootstrap
from datetime import datetime
from pyelasticsearch import ElasticSearch

""" Insert some code here that creates/runs the Elasticsearch instance """

es = ElasticSearch('http://localhost:9200/')

doc = {
    'author': 'kimchy',
    'text': 'Elasticsearch: cool. bonsai cool.',
    'timestamp': datetime(2010, 10, 10, 10, 10, 10)
    }

es.index(index="test-index", doc_type='tweet', doc=doc,id=1,overwrite_existing=True)


def create_app():
   app = Flask(__name__)
   Bootstrap(app)
   return app

mainApp = create_app()

@mainApp.route('/')
def index():
    return render_template('index.html')

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

但是,如果我在应用程序之外启动它(即在localhost 9200上运行它),我只能让mainApp连接到Elasticsearch实例。但是,我想要发生的是,当我运行app.py时,我的Flask服务器和它所连接的Elasticsearch实例都会被创建。我怎么能在python中这样做?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您应首先运行elasticsearch的服务 sudo service elasticsearch start  然后提供您的应用