Skip to main content

各种实用、常用的小函数、类

Project description

jyhelper

一些常用的类、方法,不定时更新。

PyPI: https://pypi.org/project/jyhelper/


模块说明

模块 说明 额外依赖
db / mysql MySQL 数据库操作 基础包(pymysql)
mongo MongoDB 操作 jyhelper[mongo]
timeHelper 时间日期相关
file / fileHelper 文件读写与操作
common 常用小工具方法
feishuRobot 飞书机器人发消息
sysHelper 系统、命令行、并发任务
strHelper 字符串处理
listHelper 列表处理
dictHelper 字典处理
docHelper 文档相关
mailHelper 邮件收发
apiHelper 基于 FastAPI 快速搭建 API jyhelper[api]

安装

基础安装

默认包含:pymysqlrequestssqlparse

pip install jyhelper
# 或
python3 -m pip install jyhelper

按需安装扩展

# API 服务(fastapi + uvicorn)
pip install jyhelper[api]

# MongoDB
pip install jyhelper[mongo]

# 安装全部扩展
pip install jyhelper[all]

# 组合安装
pip install jyhelper[api,mongo]

更新

pip install jyhelper -U 只升级 jyhelper 本体基础依赖,不会自动更新扩展依赖。 更新时需带上当初安装的 extras:

# 只装了基础包
pip install jyhelper -U

# 装了 API 扩展,更新时要带上 [api]
pip install jyhelper[api] -U

# 装了多个扩展
pip install jyhelper[api,mongo] -U

# 装了全部扩展
pip install jyhelper[all] -U

# 指定 PyPI 源
pip install jyhelper[api] --upgrade -i https://pypi.org/simple
python3 -m pip install jyhelper[api] --upgrade -i https://pypi.org/simple

使用说明

基础工具

from jyhelper import db, timeHelper, common, fileHelper, feishuRobot

dbIns = db(host='', user='root', password='', port=3306, db='')
for row in dbIns.table('table').select():
    print(row)

print(common.explodeList([1, 2, 3], 2))
print(timeHelper.getDate())
fileHelper.read(file_path='')

apiHelper — 快速搭建 API

需先安装:pip install jyhelper[api]

启动后访问:

  • Swagger 文档:http://127.0.0.1:8787/docs
  • ReDoc 文档:http://127.0.0.1:8787/redoc

方式 1:routes 列表(推荐)

from jyhelper import apiHelper

def hello():
    return apiHelper.success(data={"message": "Hello, World!"})

apiHelper(
    port=8787,
    title="My API",
    routes=[
        {
            "method": "GET",
            "path": "/hello",
            "handler": hello,
            "summary": "Hello 示例",
            "auth": None,
        },
    ],
)

运行:

python adminAPI.py

方式 2:装饰器 + 热重载 / 多进程

from jyhelper import apiHelper

helper = apiHelper(port=8787, auto_run=False)
app = helper.app

@helper.route("GET", "/hello", summary="Hello 示例")
def hello():
    return apiHelper.success(data={"message": "Hello, World!"})

@helper.route("POST", "/hello", auth="change-me", summary="Hello POST 示例")
def hello_post():
    return apiHelper.success(data={"message": "Hello, POST!"})

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(
        "adminAPI:app",
        host=helper.host,
        port=helper.port,
        log_config=helper.log_config,
        reload=True,       # 开发热重载
        # workers=4,       # 生产多进程(与 reload 不能同时用)
    )

统一响应格式

# 成功
return apiHelper.success(data={"id": 1})
return apiHelper.success(message="操作成功", data={"id": 1})

# 错误(HTTP 仍为 200,错误体现在 body.code)
return apiHelper.error(message="参数错误", code=1001)

鉴权

auth 为非空字符串时,请求需携带 Header:

Authorization: Bearer <token>
curl http://127.0.0.1:8787/hello
curl -X POST http://127.0.0.1:8787/hello -H "Authorization: Bearer change-me"

后台运行(Linux)

nohup python3 adminAPI.py >> adminAPI.log 2>&1 &

导入方式

所有模块均可从包根导入:

from jyhelper import apiHelper, db, mysql, mongo, timeHelper, common

要求

  • Python >= 3.5

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jyhelper-26.7.10.2.tar.gz (63.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jyhelper-26.7.10.2-py3-none-any.whl (71.0 kB view details)

Uploaded Python 3

File details

Details for the file jyhelper-26.7.10.2.tar.gz.

File metadata

  • Download URL: jyhelper-26.7.10.2.tar.gz
  • Upload date:
  • Size: 63.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.11

File hashes

Hashes for jyhelper-26.7.10.2.tar.gz
Algorithm Hash digest
SHA256 372a26facfe8a441d18c8d9ae73741ba3f8120824e9eb531e2e3727b4ad86a66
MD5 b6103b630dbcf6db49e7ff82d90e4247
BLAKE2b-256 88d3565608ec5cf0af19dee79fe34c72b122efa6e4924811664122046a4ee48c

See more details on using hashes here.

File details

Details for the file jyhelper-26.7.10.2-py3-none-any.whl.

File metadata

  • Download URL: jyhelper-26.7.10.2-py3-none-any.whl
  • Upload date:
  • Size: 71.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.11

File hashes

Hashes for jyhelper-26.7.10.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d803e55774951341032d50079f58e254f4028d8dbbe3ac99bab1d236cc110480
MD5 d73b10db6467767af208be6d0dcbaeea
BLAKE2b-256 96143d3f699659ff0b65ac2825f1fe5112c9e84c8c962075c727032b40fa7662

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page