0

redis とやり取りするフラスコ アプリケーションに取り組んでいます。このアプリケーションは、redis アドオンを使用して heroku にデプロイされています。

インタラクションでいくつかのテストを行っているときに、設定したキーと値のペアを取得できません。代わりに、戻り値の型として常に None を取得します。次に例を示します。

   import Flask
   import redis


   app = Flask(__name__)
   redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')
   redis = redis.from_url(redis_url)

   @app.route('/test')
   def test():
      redis.set("test", "{test1: test}")
      print redis.get("test")   # print None here
      return "what the freak"


  if __name__ == "__main__":
       app.run(host='0.0.0.0')

上記のように、テスト ルートは None を出力します。値が設定されていないことを意味します。私は混乱しています。ローカル ブラウザでサーバーをテストすると動作し、heroku python shell を使用して redis とやり取りしようとすると動作します。

Python シェルでのテスト:

heroku run python
from server import redis
redis.set('test', 'i am here')  # return True
redis.get('test') # return i am here

私は今混乱しています。Flask を使用して redis を適切に操作するにはどうすればよいですか?

4

2 に答える 2