更新文档
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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。
|
||||
@@ -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: 返回组合后的过滤条件。
|
||||
@@ -9,6 +9,8 @@
|
||||
:maxdepth: 1
|
||||
|
||||
admin
|
||||
curd
|
||||
helper
|
||||
|
||||
辅助函数
|
||||
------------
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:mod:`cache` -- 应用缓存模块
|
||||
================================
|
||||
|
||||
:mod:`cache` 模块源代码在文件夹 `applications/common/utils/cache.py` 下,主要用于简单的程序数据缓存。
|
||||
:mod:`cache` 模块源代码在文件 `applications/common/utils/cache.py` 下,主要用于简单的程序数据缓存。
|
||||
|
||||
目前此模块仅启用应用程序缓存,暂时没有联动 Redis 等数据库缓存的功能,后续有意向添加。您可以在自己的项目中添加相关的函数,当然也非常欢迎提交 PR ,一起完善项目。
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:mod:`captcha` -- 验证码生成模块
|
||||
==================================
|
||||
|
||||
:mod:`captcha` 模块源代码在文件夹 `applications/common/utils/captcha.py` 下,主要用于生成验证码图片。
|
||||
:mod:`captcha` 模块源代码在文件 `applications/common/utils/captcha.py` 下,主要用于生成验证码图片。
|
||||
|
||||
.. module:: captcha
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
目录索引
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:maxdepth: 2
|
||||
|
||||
cache
|
||||
captcha
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,7 +1,7 @@
|
||||
:mod:`upload` -- 文件上传模块
|
||||
==================================
|
||||
|
||||
:mod:`upload` 模块源代码在文件夹 `applications/common/utils/upload.py` 下,主要用于文件上传,目前主要用于图片上传。
|
||||
:mod:`upload` 模块源代码在文件 `applications/common/utils/upload.py` 下,主要用于文件上传,目前主要用于图片上传。
|
||||
|
||||
.. module:: upload
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
:mod:`validate` -- 效验模块
|
||||
==================================
|
||||
|
||||
:mod:`validate` 模块源代码在文件夹 `applications/common/utils/validate.py` 下,主要用于数据效验与过滤。
|
||||
:mod:`validate` 模块源代码在文件 `applications/common/utils/validate.py` 下,主要用于数据效验与过滤。
|
||||
|
||||
.. module:: validate
|
||||
|
||||
|
||||
Reference in New Issue
Block a user