Elasticsearch viewable by Flask
lukaszkuczynski
Posted on July 16, 2017
API for ES - why
So what is the goal? I want to have small app, that will allow greedy HR workers to explore Projects I took part in. I believe, one's experience is the most important feature of future (IT) worker; school was long time ago, courses are OK but who knows who helped to accomplish them?
Python for APIs
Working with some small projects using Django, I believe it's nice framework for web apps. But do we need always some full-featured machine like that? No. Sometimes microservice is ready to be written in few lines. How so?
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
Yeah, that is everything to write the service that is listening on port 5000 if you will run it with
FLASK_APP=hello.py flask run
That's all folks.
Elasticsearch managed by py
It was fun implementing searching in py official library for ES. It is easy as following:
from elasticsearch import Elasticsearch
es = Elasticsearch()
response = self.es.search(index=INDEX_PATTERN, doc_type=PROJECT_DOCTYPE, q=lucene_query)
Response is regular json so using pythonic dicts it accessing it's body will be possible.
Python + ES = fast API work
Even having TDD approach I was able to expose search functionality for my future webapp in 2 or 3 hours. Integration testing is also easy as this flask-testing and elastic-testing examples show. All results visible so far on my github project page.
Posted on July 16, 2017
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.