フラスコを使い始めたばかりで、redis を使用してチュートリアルのマイクロブログを作成しようとしています。これが私のアプリです:
from flask import Flask, render_template, request, url_for, redirect
import redis
from datetime import datetime
app = Flask(__name__)
app.config.from_object(__name__)
app.config.update(dict(
DEBUG = True,
))
POOL = redis.ConnectionPool(host='localhost', port=6379, db=0)
@app.route("/")
def index():
r = redis.StrictRedis(connection_pool = POOL)
print r
pipe = r.pipeline()
print pipe
last_ten = pipe.zrange('post:created_on', 0, 9)
print last_ten
posts = []
for post in last_ten:
posts.append(pipe.hgetall('{}{}'.format('post:', post)))
print posts
pipe.execute()
return render_template('index.html', posts)
@app.route('/new', methods = ['POST'])
def addPost():
r = redis.StrictRedis(connection_pool = POOL)
title = request.form['title']
author = request.form['author']
now = datetime.now()
pipe = r.pipeline()
post_format = 'post:'
pid = pipe.incr('post')
pipe.hmset('{}{}'.format(post_format,pid), {'title':title, 'author':author})
pipe.zadd('post:created_on', pid = now)
pipe.execute()
return redirect(url_for('index'))
if __name__ == "__main__":
app.run()
私が走るとき、私python testapp.py
は得る
* Running on http://127.0.0.1:5000/
* Restarting with reloader
ただし、ページが読み込まれるhttp://127.0.0.1:5000/
ことも、エラーが返されることもありません。ハングアップし、永遠にロードしようとします。私はしばらくそれを残しましたが、それはまだ続いています。何が原因なのかわかりませんが、ご協力ありがとうございます。
更新:コードの実行中に何が起こっているかを確認するためprint
に、ビューにいくつかのステートメントを追加しました。これが端末に出力されたものです。index
* Running on http://127.0.0.1:5000/
* Restarting with reloader
StrictRedis<ConnectionPool<Connection<host=localhost,port=6379,db=0>>>
StrictPipeline<ConnectionPool<Connection<host=localhost,port=6379,db=0>>>
StrictPipeline<ConnectionPool<Connection<host=localhost,port=6379,db=0>>>