在你的flask应用程序中使用redis的好方法
flask-redis的Python项目详细描述
烧瓶redis
在烧瓶应用程序中使用redis的好方法。
配置
首先用pip install flask redis
安装扩展。
完成后,在烧瓶配置中配置它。
设置redis实例的url如下:
REDIS_URL="redis://:password@localhost:6379/0"
如果你想连接到unix套接字, 您可以像"unix://:password@/path/to/socket.sock"那样指定它?db=0"
用法
设置
将redis客户端添加到应用程序:
fromflaskimportFlaskfromflask_redisimportFlaskRedisapp=Flask(__name__)redis_client=FlaskRedis(app)
或者,如果您愿意,您可以采用其他方式:
redis_client=FlaskRedis(app)defcreate_app():app=Flask(__name__)redis_client.init_app(app)returnapp
访问redis
上面从flaskredis
创建的redis客户机就像redis py库中的常规
redis
实例一样:
frommy_appimportredis_client@app.route('/')defindex():returnredis_client.get('potato')
有关可以在客户机上使用的方法的详细说明, 以及如何使用高级功能 例如lua脚本、管道和回调, 请检查 redis py文档
专业提示:redis py
package使用redis
名称空间,因此最好将redis对象命名为类似redis_client的名称,而不仅仅是
redis
烧瓶redis的额外功能
自定义提供程序
而不是默认的redis
client fromredis py
,
你可以自己提供。
这个可以用mockredis替换它以进行测试:
fromflaskimportFlaskfromflask_redisimportFlaskRedisfrommockredisimportMockRedisdefcreate_app():app=Flask(__name__)ifapp.testing:redis_store=FlaskRedis.from_custom_provider(MockRedis)else:redis_store=FlaskRedis()redis_store.init_app(app)returnapp
贡献
- 检查有无未解决的问题或打开新问题以开始讨论
- forkGithub上的存储库。
- 用你的代码发送一个请求!
合并将需要一个测试,该测试显示错误已修复, 或者功能按预期工作。 尽管没有这样的测试,但是可以随意打开一个拔模请求 如果您不确定如何编写,请寻求帮助。
由于工作台(唯一的维护人员)是全职工作的, 请在处理您的问题或请求之前等待一段时间。
更改日志
此项目的所有显著更改都将记录在此文件中。
格式基于保持更改日志 这个项目遵循语义版本控制。
0.4.0(2019-05-29)
- 重新组织模块并重写库代码以外的所有内容,主要是打包和ci。行为上没有面向用户的变化。
0.3.0(2016-07-18)
- 向后不兼容:flaskredis.init_应用程序的
方法号 longer需要一个
实例。strict
参数。创建时传递此标志 取而代之的是烧瓶 - 向后不兼容:现在将注册扩展名
在实例的(小写)配置前缀下。默认值
配置前缀是
'redis'
,因此除非您更改它,否则您仍然可以 如前所述,通过app.extensions['redis']
访问分机。 - 向后不兼容:默认类已更改为
redis.strictredis
。您可以切换回原来的redis.redis
通过在烧瓶中指定strict=false
来初始化。 - 现在可以传递所有支持的
redis
关键字参数(例如解码响应
)到烧瓶
,它们将正确无误 传递给redis py
实例。谢谢,@giyyapan! - 类似于
redis存储区['key']=值
,redis存储区['key']
,以及del redis_store['key']
现在受支持。谢谢,@ariscn!
0.2.0(2015-04-15)
- 使0.1.0的否决警告更改为最终更改
0.1.0(2015-04-15)
- 弃用:重命名为
烧瓶。使用旧名称仍然有效,但是 一个弃用警告,因为它将从下一个版本中删除
- 弃用:现在设置一个
redis_数据库
(或等效数据库) 发出弃用警告,因为它将在中的版本中被删除 希望在redis\u url中包含数据库号(或 等效)
- 为添加了一个
flaskredis.from_custom_provider(provider)
类方法 使用任何支持使用来自URL
类方法 - 将
strict
参数添加到flaskredis
中,该参数需要布尔值 值,并允许在使用redis.strictredis
和redis.redis
作为默认提供商。 - 使烧瓶成为烧瓶的延伸部分 扩展API
- 在py.test中重写测试套件
- 摆脱了繁琐的属性复制机制,转而使用 将调用传递给底层的 客户端
0.0.6(2014-04-09)
- 改进了对python 3的支持(感谢underyx!)
- 改进的测试用例。
- 改进D配置。
- 已修复文档。
- 删除了未使用的进口产品(感谢Underyx和Lyschoening!)
0.0.5(2014-02-17)
- 配置前缀的改进支持。
0.0.4(2014-02-17)
- 增加了对配置前缀的支持,允许多个数据库。
0.0.3(2013-07-06)
- 增加了烧瓶0.9/0.10的Travisci试验。
- 在自述文件中添加了徽章。
0.0.2(2013-07-06)
- 实现了一个非常简单的测试。
- 修复了一些文档问题。
- 包括用于测试的Requirements.txt。
- 包括任务文件,包括一些基本的测试方法。
0.0.1(2013-07-05)
- 概念
- 包的初始提交到github。
学分
编写并维护烧瓶redis
项目
通过长凳(underyx)
该项目最初由rhys elsmore创建, 在2014年0.0.6版本发布之前一直是谁维护的。 他的作品是根据apache 2许可证授权的。 从那以后,这个项目已经完全重写了, 但他的作品作为灵感是必不可少的。 谢谢,里斯!
贡献者的完整列表可以在github的贡献者页面上找到。
或者您可以通过运行git shortlog-sn