- 新增图像生成接口,支持试用、积分和自定义API Key模式 - 实现生成图片结果异步上传至MinIO存储,带重试机制 - 优化积分预扣除和异常退还逻辑,保障用户积分准确 - 添加获取生成历史记录接口,支持时间范围和分页 - 提供本地字典配置接口,支持模型、比例、提示模板和尺寸 - 实现图片批量上传接口,支持S3兼容对象存储 feat(admin): 增加管理员角色管理与权限分配接口 - 实现角色列表查询、角色创建、更新及删除功能 - 增加权限列表查询接口 - 实现用户角色分配接口,便于统一管理用户权限 - 增加系统字典增删查改接口,支持分类过滤和排序 - 权限控制全面覆盖管理接口,保证安全访问 feat(auth): 完善用户登录注册及权限相关接口与页面 - 实现手机号验证码发送及校验功能,保障注册安全 - 支持手机号注册、登录及退出接口,集成日志记录 - 增加修改密码功能,验证原密码后更新 - 提供动态导航菜单接口,基于权限展示不同菜单 - 实现管理界面路由及日志、角色、字典管理页面访问权限控制 - 添加系统日志查询接口,支持关键词和等级筛选 feat(app): 初始化Flask应用并配置蓝图与数据库 - 创建应用程序工厂,加载配置,初始化数据库和Redis客户端 - 注册认证、API及管理员蓝图,整合路由 - 根路由渲染主页模板 - 应用上下文中自动创建数据库表,保证运行环境准备完毕 feat(database): 提供数据库创建与迁移支持脚本 - 新增数据库创建脚本,支持自动检测是否已存在 - 添加数据库表初始化脚本,支持创建和删除所有表 - 实现RBAC权限初始化,包含基础权限和角色创建 - 新增字段手动修复脚本,添加用户API Key和积分字段 - 强制迁移脚本支持清理连接和修复表结构,初始化默认数据及角色分配 feat(config): 新增系统配置参数 - 配置数据库、Redis、Session和MinIO相关参数 - 添加AI接口地址及试用Key配置 - 集成阿里云短信服务配置及开发模式相关参数 feat(extensions): 初始化数据库、Redis和MinIO客户端 - 创建全局SQLAlchemy数据库实例和Redis客户端 - 配置基于boto3的MinIO兼容S3客户端 chore(logs): 添加示例系统日志文件 - 记录用户请求、验证码发送成功与失败的日志信息
259 lines
9.0 KiB
Plaintext
259 lines
9.0 KiB
Plaintext
Metadata-Version: 2.1
|
|
Name: flask-redis
|
|
Version: 0.4.0
|
|
Summary: A nice way to use Redis in your Flask app
|
|
Home-page: https://github.com/underyx/flask-redis/
|
|
Author: Bence Nagy
|
|
Author-email: bence@underyx.me
|
|
Maintainer: Bence Nagy
|
|
Maintainer-email: bence@underyx.me
|
|
License: UNKNOWN
|
|
Download-URL: https://github.com/underyx/flask-redis/releases
|
|
Keywords: flask,redis
|
|
Platform: UNKNOWN
|
|
Classifier: Development Status :: 4 - Beta
|
|
Classifier: Environment :: Web Environment
|
|
Classifier: Framework :: Flask
|
|
Classifier: Intended Audience :: Developers
|
|
Classifier: Operating System :: OS Independent
|
|
Classifier: Programming Language :: Python
|
|
Classifier: Programming Language :: Python :: 2
|
|
Classifier: Programming Language :: Python :: 2.7
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3.5
|
|
Classifier: Programming Language :: Python :: 3.6
|
|
Classifier: Programming Language :: Python :: 3.7
|
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
|
|
Description-Content-Type: text/markdown
|
|
Requires-Dist: Flask (>=0.8)
|
|
Requires-Dist: redis (>=2.7.6)
|
|
Provides-Extra: dev
|
|
Requires-Dist: coverage ; extra == 'dev'
|
|
Requires-Dist: pytest ; extra == 'dev'
|
|
Requires-Dist: pytest-mock ; extra == 'dev'
|
|
Requires-Dist: pre-commit ; extra == 'dev'
|
|
Provides-Extra: tests
|
|
Requires-Dist: coverage ; extra == 'tests'
|
|
Requires-Dist: pytest ; extra == 'tests'
|
|
Requires-Dist: pytest-mock ; extra == 'tests'
|
|
|
|
# flask-redis
|
|
|
|
[](https://circleci.com/gh/underyx/flask-redis)
|
|
[](https://codecov.io/gh/underyx/flask-redis)
|
|
[](https://www.codacy.com/app/bence/flask-redis?utm_source=github.com&utm_medium=referral&utm_content=underyx/flask-redis&utm_campaign=Badge_Grade)
|
|
[](https://github.com/underyx/flask-redis/tags)
|
|
|
|

|
|

|
|

|
|
[](https://github.com/ambv/black)
|
|
|
|
A nice way to use Redis in your Flask app.
|
|
|
|
## Configuration
|
|
|
|
Start by installing the extension with `pip install flask-redis`.
|
|
Once that's done, configure it within your Flask config.
|
|
Set the URL of your Redis instance like this:
|
|
|
|
```python
|
|
REDIS_URL = "redis://:password@localhost:6379/0"
|
|
```
|
|
|
|
If you wanna connect to a Unix socket,
|
|
you can specify it like `"unix://:password@/path/to/socket.sock?db=0"`.
|
|
|
|
## Usage
|
|
|
|
### Setup
|
|
|
|
To add a Redis client to your application:
|
|
|
|
```python
|
|
from flask import Flask
|
|
from flask_redis import FlaskRedis
|
|
|
|
app = Flask(__name__)
|
|
redis_client = FlaskRedis(app)
|
|
```
|
|
|
|
or if you prefer, you can do it the other way around:
|
|
|
|
```python
|
|
redis_client = FlaskRedis(app)
|
|
def create_app():
|
|
app = Flask(__name__)
|
|
redis_client.init_app(app)
|
|
return app
|
|
```
|
|
|
|
### Accessing Redis
|
|
|
|
The redis client you created above from `FlaskRedis` acts just like a regular `Redis` instance from the [`redis-py`](https://github.com/andymccurdy/redis-py) library:
|
|
|
|
```python
|
|
from my_app import redis_client
|
|
|
|
@app.route('/')
|
|
def index():
|
|
return redis_client.get('potato')
|
|
```
|
|
|
|
For detailed instructions on what methods you can use on the client,
|
|
as well as how you can use advanced features
|
|
such as Lua scripting, pipelines, and callbacks,
|
|
please check the
|
|
[redis-py documentation](https://redis-py.readthedocs.io/en/latest/).
|
|
|
|
**Pro-tip:** The [redis-py](https://github.com/andymccurdy/redis-py)
|
|
package uses the `redis` namespace, so it's nicer to name your Redis object something like `redis_client` instead of just `redis`.
|
|
|
|
## Extra features in flask-redis
|
|
|
|
### Custom providers
|
|
|
|
Instead of the default `Redis` client from `redis-py`,
|
|
you can provide your own.
|
|
This can be useful to replace it with [mockredis](https://github.com/locationlabs/mockredis) for testing:
|
|
|
|
```python
|
|
from flask import Flask
|
|
from flask_redis import FlaskRedis
|
|
from mockredis import MockRedis
|
|
|
|
|
|
def create_app():
|
|
app = Flask(__name__)
|
|
if app.testing:
|
|
redis_store = FlaskRedis.from_custom_provider(MockRedis)
|
|
else:
|
|
redis_store = FlaskRedis()
|
|
redis_store.init_app(app)
|
|
return app
|
|
```
|
|
|
|
## Contributing
|
|
|
|
1. Check for open issues or open a fresh issue to start a discussion
|
|
2. Fork [the repository](https://github.com/underyx/flask-redis) on GitHub.
|
|
3. Send a pull request with your code!
|
|
|
|
Merging will require a test which shows that the bug was fixed,
|
|
or that the feature works as expected.
|
|
Feel free to open a draft pull request though without such a test
|
|
and ask for help with writing it if you're not sure how to.
|
|
|
|
As [Bence](https://underyx.me) (the only maintainer) works full-time,
|
|
please allow some time before your issue or pull request is handled.
|
|
|
|
|
|
## Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
|
|
## 0.4.0 (2019-05-29)
|
|
|
|
- Reorganized the module and rewrote everything other than the library code, mainly packaging and CI. There are no user-facing changes in behavior.
|
|
|
|
## 0.3.0 (2016-07-18)
|
|
|
|
- **Backwards incompatible:** The `FlaskRedis.init_app` method no
|
|
longer takes a `strict` parameter. Pass this flag when creating your
|
|
`FlaskRedis` instance, instead.
|
|
- **Backwards incompatible:** The extension will now be registered
|
|
under the (lowercased) config prefix of the instance. The default
|
|
config prefix is `'REDIS'`, so unless you change that, you can still
|
|
access the extension via `app.extensions['redis']` as before.
|
|
- **Backwards incompatible:** The default class has been changed to
|
|
`redis.StrictRedis`. You can switch back to the old `redis.Redis`
|
|
class by specifying `strict=False` in the `FlaskRedis` kwargs.
|
|
- You can now pass all supported `Redis` keyword arguments (such as
|
|
`decode_responses`) to `FlaskRedis` and they will be correctly
|
|
passed over to the `redis-py` instance. Thanks, @giyyapan\!
|
|
- Usage like `redis_store['key'] = value`, `redis_store['key']`, and
|
|
`del redis_store['key']` is now supported. Thanks, @ariscn\!
|
|
|
|
## 0.2.0 (2015-04-15)
|
|
|
|
- Made 0.1.0's deprecation warned changes final
|
|
|
|
## 0.1.0 (2015-04-15)
|
|
|
|
- **Deprecation:** Renamed `flask_redis.Redis` to
|
|
`flask_redis.FlaskRedis`. Using the old name still works, but emits
|
|
a deprecation warning, as it will be removed from the next version
|
|
- **Deprecation:** Setting a `REDIS_DATABASE` (or equivalent) now
|
|
emits a deprecation warning as it will be removed in the version in
|
|
favor of including the database number in `REDIS_URL` (or
|
|
equivalent)
|
|
- Added a `FlaskRedis.from_custom_provider(provider)` class method for
|
|
using any redis provider class that supports instantiation with a
|
|
`from_url` class method
|
|
- Added a `strict` parameter to `FlaskRedis` which expects a boolean
|
|
value and allows choosing between using `redis.StrictRedis` and
|
|
`redis.Redis` as the defualt provider.
|
|
- Made `FlaskRedis` register as a Flask extension through Flask's
|
|
extension API
|
|
- Rewrote test suite in py.test
|
|
- Got rid of the hacky attribute copying mechanism in favor of using
|
|
the `__getattr__` magic method to pass calls to the underlying
|
|
client
|
|
|
|
## 0.0.6 (2014-04-09)
|
|
|
|
- Improved Python 3 Support (Thanks underyx\!).
|
|
- Improved test cases.
|
|
- Improved configuration.
|
|
- Fixed up documentation.
|
|
- Removed un-used imports (Thanks underyx and lyschoening\!).
|
|
|
|
## 0.0.5 (2014-02-17)
|
|
|
|
- Improved suppot for the config prefix.
|
|
|
|
## 0.0.4 (2014-02-17)
|
|
|
|
- Added support for config_prefix, allowing multiple DBs.
|
|
|
|
## 0.0.3 (2013-07-06)
|
|
|
|
- Added TravisCI Testing for Flask 0.9/0.10.
|
|
- Added Badges to README.
|
|
|
|
## 0.0.2 (2013-07-06)
|
|
|
|
- Implemented a very simple test.
|
|
- Fixed some documentation issues.
|
|
- Included requirements.txt for testing.
|
|
- Included task file including some basic methods for tests.
|
|
|
|
## 0.0.1 (2013-07-05)
|
|
|
|
- Conception
|
|
- Initial Commit of Package to GitHub.
|
|
|
|
|
|
## Credits
|
|
|
|
The `flask-redis` project is written and maintained
|
|
by [Bence Nagy (underyx)](https://underyx.me).
|
|
|
|
The project was originally created by [Rhys Elsmore](https://rhys.io/),
|
|
who maintained it until the 0.0.6 release in 2014.
|
|
His work was licensed under the Apache 2 license.
|
|
The project has gone through a full rewrite since,
|
|
but his work was essential as inspiration.
|
|
Thanks, Rhys!
|
|
|
|
A full list of contributors can be found on [GitHub's Contributors page](https://github.com/underyx/flask-redis/graphs/contributors)
|
|
or you can obtain it on your own by running `git shortlog -sn`.
|
|
|
|
|