from flask import Flask, request, render_template
import redis
app = Flask(__name__)
red = redis.Redis(host='redis', port=6379, db=0)
@app.route("/")
def main():
return render_template('red.html')
@app.route("/save", methods=['POST'])
def save():
field = request.form['field']
value = request.form['value']
ret = red.set(field, value)
app.logger.debug(ret)
new_value = red.get(field)
return render_template('red.html', saved=1, value=new_value)
@app.route("/get", methods=['POST'])
def get():
field = request.form['field']
value = red.get(field)
if value is None:
return render_template('red.html', field=field, value="Not defined yet")
str_value = value.decode('utf-8')
return render_template('red.html', field=field, value=str_value)
@app.route("/keys", methods=['GET'])
def keys():
all_keys = red.keys("*")
return render_template('red.html', fields=all_keys)
<h1>Flask + Redis</h1>
<div>
<a href="/">home</a> <a href="/keys">keys</a>
</div>
Type in a key and a value and save it to Redis.
<form action="/save" method="POST">
<input name="field">
<input name="value">
<input type="submit" value="Save">
</form>
Type in a key and fetch the value from Redis.
<form action="/get" method="POST">
<input name="field">
<input type="submit" value="Get">
</form>
{% if saved %}
<b>saved</b>
{{ value.decode('utf8') }}
{% endif %}
{% if field %}
The value of <b>{{ field }}</b> is <b>{{ value }}</b>
{% endif %}
{% if fields %}
<h2>Keys</h2>
<ul>
{% for field in fields %}
<li>{{ field.decode('utf8') }}</li>
{% endfor %}
</ul>
{% endif %}