- 新增图像生成接口,支持试用、积分和自定义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): 添加示例系统日志文件 - 记录用户请求、验证码发送成功与失败的日志信息
244 lines
9.3 KiB
Plaintext
244 lines
9.3 KiB
Plaintext
Metadata-Version: 2.4
|
|
Name: SQLAlchemy
|
|
Version: 2.0.45
|
|
Summary: Database Abstraction Library
|
|
Home-page: https://www.sqlalchemy.org
|
|
Author: Mike Bayer
|
|
Author-email: mike_mp@zzzcomputing.com
|
|
License: MIT
|
|
Project-URL: Documentation, https://docs.sqlalchemy.org
|
|
Project-URL: Issue Tracker, https://github.com/sqlalchemy/sqlalchemy/
|
|
Classifier: Development Status :: 5 - Production/Stable
|
|
Classifier: Intended Audience :: Developers
|
|
Classifier: Operating System :: OS Independent
|
|
Classifier: Programming Language :: Python
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3.7
|
|
Classifier: Programming Language :: Python :: 3.8
|
|
Classifier: Programming Language :: Python :: 3.9
|
|
Classifier: Programming Language :: Python :: 3.10
|
|
Classifier: Programming Language :: Python :: 3.11
|
|
Classifier: Programming Language :: Python :: 3.12
|
|
Classifier: Programming Language :: Python :: 3.13
|
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
Classifier: Topic :: Database :: Front-Ends
|
|
Requires-Python: >=3.7
|
|
Description-Content-Type: text/x-rst
|
|
License-File: LICENSE
|
|
Requires-Dist: importlib-metadata; python_version < "3.8"
|
|
Requires-Dist: greenlet>=1; platform_machine == "aarch64" or (platform_machine == "ppc64le" or (platform_machine == "x86_64" or (platform_machine == "amd64" or (platform_machine == "AMD64" or (platform_machine == "win32" or platform_machine == "WIN32")))))
|
|
Requires-Dist: typing-extensions>=4.6.0
|
|
Provides-Extra: asyncio
|
|
Requires-Dist: greenlet>=1; extra == "asyncio"
|
|
Provides-Extra: mypy
|
|
Requires-Dist: mypy>=0.910; extra == "mypy"
|
|
Provides-Extra: mssql
|
|
Requires-Dist: pyodbc; extra == "mssql"
|
|
Provides-Extra: mssql-pymssql
|
|
Requires-Dist: pymssql; extra == "mssql-pymssql"
|
|
Provides-Extra: mssql-pyodbc
|
|
Requires-Dist: pyodbc; extra == "mssql-pyodbc"
|
|
Provides-Extra: mysql
|
|
Requires-Dist: mysqlclient>=1.4.0; extra == "mysql"
|
|
Provides-Extra: mysql-connector
|
|
Requires-Dist: mysql-connector-python; extra == "mysql-connector"
|
|
Provides-Extra: mariadb-connector
|
|
Requires-Dist: mariadb!=1.1.10,!=1.1.2,!=1.1.5,>=1.0.1; extra == "mariadb-connector"
|
|
Provides-Extra: oracle
|
|
Requires-Dist: cx_oracle>=8; extra == "oracle"
|
|
Provides-Extra: oracle-oracledb
|
|
Requires-Dist: oracledb>=1.0.1; extra == "oracle-oracledb"
|
|
Provides-Extra: postgresql
|
|
Requires-Dist: psycopg2>=2.7; extra == "postgresql"
|
|
Provides-Extra: postgresql-pg8000
|
|
Requires-Dist: pg8000>=1.29.1; extra == "postgresql-pg8000"
|
|
Provides-Extra: postgresql-asyncpg
|
|
Requires-Dist: greenlet>=1; extra == "postgresql-asyncpg"
|
|
Requires-Dist: asyncpg; extra == "postgresql-asyncpg"
|
|
Provides-Extra: postgresql-psycopg2binary
|
|
Requires-Dist: psycopg2-binary; extra == "postgresql-psycopg2binary"
|
|
Provides-Extra: postgresql-psycopg2cffi
|
|
Requires-Dist: psycopg2cffi; extra == "postgresql-psycopg2cffi"
|
|
Provides-Extra: postgresql-psycopg
|
|
Requires-Dist: psycopg>=3.0.7; extra == "postgresql-psycopg"
|
|
Provides-Extra: postgresql-psycopgbinary
|
|
Requires-Dist: psycopg[binary]>=3.0.7; extra == "postgresql-psycopgbinary"
|
|
Provides-Extra: pymysql
|
|
Requires-Dist: pymysql; extra == "pymysql"
|
|
Provides-Extra: aiomysql
|
|
Requires-Dist: greenlet>=1; extra == "aiomysql"
|
|
Requires-Dist: aiomysql>=0.2.0; extra == "aiomysql"
|
|
Provides-Extra: aioodbc
|
|
Requires-Dist: greenlet>=1; extra == "aioodbc"
|
|
Requires-Dist: aioodbc; extra == "aioodbc"
|
|
Provides-Extra: asyncmy
|
|
Requires-Dist: greenlet>=1; extra == "asyncmy"
|
|
Requires-Dist: asyncmy!=0.2.4,!=0.2.6,>=0.2.3; extra == "asyncmy"
|
|
Provides-Extra: aiosqlite
|
|
Requires-Dist: greenlet>=1; extra == "aiosqlite"
|
|
Requires-Dist: aiosqlite; extra == "aiosqlite"
|
|
Requires-Dist: typing_extensions!=3.10.0.1; extra == "aiosqlite"
|
|
Provides-Extra: sqlcipher
|
|
Requires-Dist: sqlcipher3_binary; extra == "sqlcipher"
|
|
Dynamic: license-file
|
|
|
|
SQLAlchemy
|
|
==========
|
|
|
|
|PyPI| |Python| |Downloads|
|
|
|
|
.. |PyPI| image:: https://img.shields.io/pypi/v/sqlalchemy
|
|
:target: https://pypi.org/project/sqlalchemy
|
|
:alt: PyPI
|
|
|
|
.. |Python| image:: https://img.shields.io/pypi/pyversions/sqlalchemy
|
|
:target: https://pypi.org/project/sqlalchemy
|
|
:alt: PyPI - Python Version
|
|
|
|
.. |Downloads| image:: https://static.pepy.tech/badge/sqlalchemy/month
|
|
:target: https://pepy.tech/project/sqlalchemy
|
|
:alt: PyPI - Downloads
|
|
|
|
|
|
The Python SQL Toolkit and Object Relational Mapper
|
|
|
|
Introduction
|
|
-------------
|
|
|
|
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper
|
|
that gives application developers the full power and
|
|
flexibility of SQL. SQLAlchemy provides a full suite
|
|
of well known enterprise-level persistence patterns,
|
|
designed for efficient and high-performing database
|
|
access, adapted into a simple and Pythonic domain
|
|
language.
|
|
|
|
Major SQLAlchemy features include:
|
|
|
|
* An industrial strength ORM, built
|
|
from the core on the identity map, unit of work,
|
|
and data mapper patterns. These patterns
|
|
allow transparent persistence of objects
|
|
using a declarative configuration system.
|
|
Domain models
|
|
can be constructed and manipulated naturally,
|
|
and changes are synchronized with the
|
|
current transaction automatically.
|
|
* A relationally-oriented query system, exposing
|
|
the full range of SQL's capabilities
|
|
explicitly, including joins, subqueries,
|
|
correlation, and most everything else,
|
|
in terms of the object model.
|
|
Writing queries with the ORM uses the same
|
|
techniques of relational composition you use
|
|
when writing SQL. While you can drop into
|
|
literal SQL at any time, it's virtually never
|
|
needed.
|
|
* A comprehensive and flexible system
|
|
of eager loading for related collections and objects.
|
|
Collections are cached within a session,
|
|
and can be loaded on individual access, all
|
|
at once using joins, or by query per collection
|
|
across the full result set.
|
|
* A Core SQL construction system and DBAPI
|
|
interaction layer. The SQLAlchemy Core is
|
|
separate from the ORM and is a full database
|
|
abstraction layer in its own right, and includes
|
|
an extensible Python-based SQL expression
|
|
language, schema metadata, connection pooling,
|
|
type coercion, and custom types.
|
|
* All primary and foreign key constraints are
|
|
assumed to be composite and natural. Surrogate
|
|
integer primary keys are of course still the
|
|
norm, but SQLAlchemy never assumes or hardcodes
|
|
to this model.
|
|
* Database introspection and generation. Database
|
|
schemas can be "reflected" in one step into
|
|
Python structures representing database metadata;
|
|
those same structures can then generate
|
|
CREATE statements right back out - all within
|
|
the Core, independent of the ORM.
|
|
|
|
SQLAlchemy's philosophy:
|
|
|
|
* SQL databases behave less and less like object
|
|
collections the more size and performance start to
|
|
matter; object collections behave less and less like
|
|
tables and rows the more abstraction starts to matter.
|
|
SQLAlchemy aims to accommodate both of these
|
|
principles.
|
|
* An ORM doesn't need to hide the "R". A relational
|
|
database provides rich, set-based functionality
|
|
that should be fully exposed. SQLAlchemy's
|
|
ORM provides an open-ended set of patterns
|
|
that allow a developer to construct a custom
|
|
mediation layer between a domain model and
|
|
a relational schema, turning the so-called
|
|
"object relational impedance" issue into
|
|
a distant memory.
|
|
* The developer, in all cases, makes all decisions
|
|
regarding the design, structure, and naming conventions
|
|
of both the object model as well as the relational
|
|
schema. SQLAlchemy only provides the means
|
|
to automate the execution of these decisions.
|
|
* With SQLAlchemy, there's no such thing as
|
|
"the ORM generated a bad query" - you
|
|
retain full control over the structure of
|
|
queries, including how joins are organized,
|
|
how subqueries and correlation is used, what
|
|
columns are requested. Everything SQLAlchemy
|
|
does is ultimately the result of a developer-initiated
|
|
decision.
|
|
* Don't use an ORM if the problem doesn't need one.
|
|
SQLAlchemy consists of a Core and separate ORM
|
|
component. The Core offers a full SQL expression
|
|
language that allows Pythonic construction
|
|
of SQL constructs that render directly to SQL
|
|
strings for a target database, returning
|
|
result sets that are essentially enhanced DBAPI
|
|
cursors.
|
|
* Transactions should be the norm. With SQLAlchemy's
|
|
ORM, nothing goes to permanent storage until
|
|
commit() is called. SQLAlchemy encourages applications
|
|
to create a consistent means of delineating
|
|
the start and end of a series of operations.
|
|
* Never render a literal value in a SQL statement.
|
|
Bound parameters are used to the greatest degree
|
|
possible, allowing query optimizers to cache
|
|
query plans effectively and making SQL injection
|
|
attacks a non-issue.
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
Latest documentation is at:
|
|
|
|
https://www.sqlalchemy.org/docs/
|
|
|
|
Installation / Requirements
|
|
---------------------------
|
|
|
|
Full documentation for installation is at
|
|
`Installation <https://www.sqlalchemy.org/docs/intro.html#installation>`_.
|
|
|
|
Getting Help / Development / Bug reporting
|
|
------------------------------------------
|
|
|
|
Please refer to the `SQLAlchemy Community Guide <https://www.sqlalchemy.org/support.html>`_.
|
|
|
|
Code of Conduct
|
|
---------------
|
|
|
|
Above all, SQLAlchemy places great emphasis on polite, thoughtful, and
|
|
constructive communication between users and developers.
|
|
Please see our current Code of Conduct at
|
|
`Code of Conduct <https://www.sqlalchemy.org/codeofconduct.html>`_.
|
|
|
|
License
|
|
-------
|
|
|
|
SQLAlchemy is distributed under the `MIT license
|
|
<https://www.opensource.org/licenses/mit-license.php>`_.
|
|
|