在你的flask应用程序中使用redis的好方法

flask-redis的Python项目详细描述


烧瓶redis

CirclecicodecovCodacy徽章Github标签(最新版本)

pypi-python version烧瓶版本支持为0.9+redis py版本支持是2.6+code style:black

在烧瓶应用程序中使用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的额外功能

自定义提供程序

而不是默认的redisclient 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

贡献

  1. 检查有无未解决的问题或打开新问题以开始讨论
  2. forkGithub上的存储库
  3. 用你的代码发送一个请求!

合并将需要一个测试,该测试显示错误已修复, 或者功能按预期工作。 尽管没有这样的测试,但是可以随意打开一个拔模请求 如果您不确定如何编写,请寻求帮助。

由于工作台(唯一的维护人员)是全职工作的, 请在处理您的问题或请求之前等待一段时间。

更改日志

此项目的所有显著更改都将记录在此文件中。

格式基于保持更改日志 这个项目遵循语义版本控制。

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.strictredisredis.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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java岩石、布、剪刀程序,带文件输入   java迭代Hashmap中的值列表   数组不能正确循环   JavaHibernate:对于一个遥远的惰性依赖,有一个渴望的获取者吗?   交通阻塞下的java车辆路径选择   如何在java中创建布尔方法来检查添加到具有特定索引的arraylist的对象   java Tomcat配置文件/上下文xml似乎已经崩溃了。请确保它是可分析和有效的。有关详细信息,请参阅服务器日志   为什么坐标有时相等,有时不相等?   java libgdx CameraInputController过于敏感,平移开始得太早   将C++排序函数移植到java   java应该是十进制的   swing Java JFrame中的所有内容都不可见   java使用数组中除一个元素以外的所有元素   从子类运行构造函数的Java