更新文档

This commit is contained in:
wojiaoyishang
2025-01-27 19:48:27 +08:00
parent 155af93c77
commit 5153daf7da
39 changed files with 767 additions and 593 deletions
+20 -8
View File
@@ -1,7 +1,7 @@
:mod:`admin` -- 后台函数模块
=======================================
:mod:`admin` 模块源代码在文件 `applications/common/admin.py` 下,主要集结了一些常用的后台需要频繁调用的函数。
:mod:`admin` 模块源代码在文件 `applications/common/admin.py` 下,主要集结了一些常用的后台需要频繁调用的函数。
.. module:: admin
@@ -10,9 +10,21 @@
.. function:: get_captcha()
生成验证码图片及其对应的验证码字符串。
生成验证码图片及其对应的验证码字符串。
:return: 返回验证码图片的响应对象和验证码字符串。
:return: 返回验证码图片的响应对象和验证码字符串。
**示例:**
.. code-block:: python
from applications.common.admin import get_captcha
@bp.get('/getCaptcha')
def captcha():
resp, code = get_captcha()
session["code"] = code
return resp
.. function:: normal_log(method, url, ip, user_agent, desc, uid, is_access)
@@ -31,12 +43,12 @@
.. function:: login_log(request, uid, is_access)
记录用户登录日志。
记录用户登录日志。
:param request: Flask 请求对象。
:param uid: 用户 ID。
:param is_access: 是否成功登录(True 或 False)。
:return: 返回日志记录的 ID。
:param request: Flask 请求对象。
:param uid: 用户 ID。
:param is_access: 是否成功登录(True 或 False)。
:return: 返回日志记录的 ID。
.. function:: admin_log(request, is_access, desc=None)
+90
View File
@@ -0,0 +1,90 @@
:mod:`curd` -- 简单增删改查模块
=======================================
:mod:`curd` 模块源代码在文件 `applications/common/curd.py` 下,主要集结了一些简单实用的增删改查。
.. module:: curd
-------
.. class:: LogicalDeleteMixin
逻辑删除混入类,为模型提供软删除功能。
**示例:**
.. code-block:: python
class Test(db.Model, LogicalDeleteMixin):
__tablename__ = 'admin_test'
id = db.Column(db.Integer, primary_key=True, comment='角色ID')
# 软删除
Test.query.filter_by(id=1).soft_delete()
# 查询所有未删除的记录
Test.query.logic_all()
函数
--------------
.. function:: auto_model_jsonify(data, model: db.Model)
自动序列化模型数据为 JSON 格式,无需手动定义 Schema。
**示例:**
.. code-block:: python
power_data = curd.auto_model_jsonify(model=Dept, data=dept)
:param data: 需要序列化的 SQLAlchemy 查询结果。
:param model: SQLAlchemy 模型类。
:return: 返回序列化后的 JSON 数据。
.. function:: model_to_dicts(schema: ma.Schema, data)
使用指定的 Schema 序列化 SQLAlchemy 查询结果。
:param schema: Marshmallow Schema 类。
:param data: SQLAlchemy 查询结果。
:return: 返回序列化后的数据,返回字典。
.. function:: get_one_by_id(model: db.Model, id)
根据 ID 查询单个记录。
:param model: SQLAlchemy 模型类。
:param id: 记录的主键 ID。
:return: 返回查询到的记录,如果未找到则返回 None。
.. function:: delete_one_by_id(model: db.Model, id)
根据 ID 删除单个记录。
:param model: SQLAlchemy 模型类。
:param id: 记录的主键 ID。
:return: 返回删除操作影响的行数。
.. function:: enable_status(model: db.Model, id)
启用指定 ID 的记录。
:param model: SQLAlchemy 模型类。
:param id: 记录的主键 ID。
:return: 如果操作成功返回 True,否则返回 False。
.. function:: disable_status(model: db.Model, id)
停用指定 ID 的记录。
:param model: SQLAlchemy 模型类。
:param id: 记录的主键 ID。
:return: 如果操作成功返回 True,否则返回 False。
+121
View File
@@ -0,0 +1,121 @@
.. _字段构造模块:
:mod:`helper` -- 字段构造模块
=======================================
:mod:`helper` 模块源代码在文件 `applications/common/helper.py` 下,主要集结了一些常用的字段构造方法。
.. module:: helper
--------
.. class:: ModelFilter
ORM 多条件查询构造器,支持多种查询条件组合。
**示例:**
.. code-block:: python
from applications.common.helper import ModelFilter
mf = ModelFilter()
mf.exact('name', 'John') # 添加精确匹配条件
mf.vague('email', 'example.com') # 添加模糊匹配条件
query = User.query.filter(mf.get_filter(User))
.. attribute:: filter_field
存储字段过滤条件的字典。
.. attribute:: filter_list
存储最终的过滤条件列表。
.. method:: __init__()
初始化过滤条件存储字典和列表。
.. method:: exact(field_name, value)
添加精确匹配条件。
:param field_name: 模型字段名称。
:param value: 匹配的值。
.. method:: neq(field_name, value)
添加不等于条件。
:param field_name: 模型字段名称。
:param value: 不匹配的值。
.. method:: greater(field_name, value)
添加大于条件。
:param field_name: 模型字段名称。
:param value: 大于的值。
.. method:: less(field_name, value)
添加小于条件。
:param field_name: 模型字段名称。
:param value: 小于的值。
.. method:: vague(field_name, value: str)
添加模糊匹配条件(左右模糊)。
:param field_name: 模型字段名称。
:param value: 模糊匹配的值。
.. method:: left_vague(field_name, value: str)
添加左模糊匹配条件。
:param field_name: 模型字段名称。
:param value: 左模糊匹配的值。
.. method:: right_vague(field_name, value: str)
添加右模糊匹配条件。
:param field_name: 模型字段名称。
:param value: 右模糊匹配的值。
.. method:: contains(field_name, value: str)
添加包含条件。
:param field_name: 模型字段名称。
:param value: 包含的值。
.. method:: between(field_name, value1, value2)
添加范围查询条件。
:param field_name: 模型字段名称。
:param value1: 范围起始值。
:param value2: 范围结束值。
.. method:: get_filter(model: db.Model)
获取最终的 SQLAlchemy 过滤条件。
:param model: SQLAlchemy 模型类。
:return: 返回组合后的过滤条件。
+2
View File
@@ -9,6 +9,8 @@
:maxdepth: 1
admin
curd
helper
辅助函数
------------
+1 -1
View File
@@ -1,7 +1,7 @@
:mod:`cache` -- 应用缓存模块
================================
:mod:`cache` 模块源代码在文件 `applications/common/utils/cache.py` 下,主要用于简单的程序数据缓存。
:mod:`cache` 模块源代码在文件 `applications/common/utils/cache.py` 下,主要用于简单的程序数据缓存。
目前此模块仅启用应用程序缓存,暂时没有联动 Redis 等数据库缓存的功能,后续有意向添加。您可以在自己的项目中添加相关的函数,当然也非常欢迎提交 PR ,一起完善项目。
+1 -1
View File
@@ -1,7 +1,7 @@
:mod:`captcha` -- 验证码生成模块
==================================
:mod:`captcha` 模块源代码在文件 `applications/common/utils/captcha.py` 下,主要用于生成验证码图片。
:mod:`captcha` 模块源代码在文件 `applications/common/utils/captcha.py` 下,主要用于生成验证码图片。
.. module:: captcha
+21 -1
View File
@@ -1,7 +1,9 @@
.. _JSON 响应正文生成模块:
:mod:`http` -- JSON 响应正文生成模块
=======================================
:mod:`http` 模块源代码在文件 `applications/common/utils/http.py` 下,主要用于生成 JSON 格式的响应正文。
:mod:`http` 模块源代码在文件 `applications/common/utils/http.py` 下,主要用于生成 JSON 格式的响应正文。
对于大部分 JSON 格式响应的数据,请尽量遵循响应格式规范。如此方便后续前后端的分离和项目的构建。
@@ -36,4 +38,22 @@
:param limit: 每页数据条数,默认为 10。
:return: 返回 JSON 格式的响应,包含 `msg`、`code`、`data`、`count` 和 `limit` 字段。
**示例:**
.. code-block:: python
from applications.common.utils.http import success_api, fail_api
@bp.get('/init')
def init():
if ...:
return success_api(msg="初始化成功")
return fail_api(msg="初始化失败")
.. code-block:: python
from applications.common.utils.http import table_api
@bp.get('/data')
def data():
return table_api(data=[], total=0)
+1 -1
View File
@@ -3,7 +3,7 @@
目录索引
.. toctree::
:maxdepth: 1
:maxdepth: 2
cache
captcha
+20 -7
View File
@@ -1,7 +1,11 @@
.. _邮件模块:
:mod:`mail` -- 邮件模块
==================================
:mod:`mail` 模块源代码在文件 `applications/common/utils/mail.py` 下,主要用于邮件的发送。
:mod:`mail` 模块源代码在文件 `applications/common/utils/mail.py` 下,主要用于邮件的发送。
使用前,需要正确在 `applications/config.py` 中配置 SMTP 服务器。
.. module:: mail
@@ -31,14 +35,23 @@
.. function:: add(receiver, subject, content, user_id)
发送一封邮件,并将发送记录保存到数据库。 **该方法被邮件发送的视图函数调用。**
发送一封邮件,并将发送记录保存到数据库。 **该方法被邮件发送的视图函数调用。**
:param receiver: 接收者邮箱地址,多个邮箱用英文分号隔开。
:param subject: 邮件主题。
:param content: 邮件内容(HTML 格式)。
:param user_id: 发送者用户ID,表示谁发送了这封邮件。
:param receiver: 接收者邮箱地址,多个邮箱用英文分号隔开。
:param subject: 邮件主题。
:param content: 邮件内容(HTML 格式)。
:param user_id: 发送者用户ID,表示谁发送了这封邮件。
可以使用 `from flask_login import current_user; current_user.id` 获取当前登录用户的ID。
:return: 发送成功返回 True,失败报错。
:return: 发送成功返回 True,失败报错。
**示例**
.. code-block:: python
from flask_login import current_user
from applications.common.utils import mail
mail.add("test@test.com", "subject", "<h1>Hello</h1>", current_user.id)
.. function:: delete(id)
+5 -1
View File
@@ -1,7 +1,9 @@
.. _权限验证模块:
:mod:`rights` -- 权限验证模块
==================================
:mod:`rights` 模块源代码在文件 `applications/common/utils/rights.py` 下,主要用于权限验证。
:mod:`rights` 模块源代码在文件 `applications/common/utils/rights.py` 下,主要用于权限验证。
.. module:: rights
@@ -23,6 +25,8 @@
.. code-block:: python
from applications.common.utils.rights import authorize
@app.route("/test")
@authorize("system:power:remove", log=True)
def test_index():
+1 -1
View File
@@ -1,7 +1,7 @@
:mod:`upload` -- 文件上传模块
==================================
:mod:`upload` 模块源代码在文件 `applications/common/utils/upload.py` 下,主要用于文件上传,目前主要用于图片上传。
:mod:`upload` 模块源代码在文件 `applications/common/utils/upload.py` 下,主要用于文件上传,目前主要用于图片上传。
.. module:: upload
+1 -1
View File
@@ -1,7 +1,7 @@
:mod:`validate` -- 效验模块
==================================
:mod:`validate` 模块源代码在文件 `applications/common/utils/validate.py` 下,主要用于数据效验与过滤。
:mod:`validate` 模块源代码在文件 `applications/common/utils/validate.py` 下,主要用于数据效验与过滤。
.. module:: validate