各种实用、常用的小函数、类
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] |
安装
基础安装
默认包含:pymysql、requests、sqlparse
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.9.9.tar.gz
(60.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jyhelper-26.7.9.9.tar.gz.
File metadata
- Download URL: jyhelper-26.7.9.9.tar.gz
- Upload date:
- Size: 60.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
419236342f345dab92d9266c1001c70d01c86a58379a27e4a4331004dd93c1c8
|
|
| MD5 |
5a958ff1690f2f90b7ffa9d876468762
|
|
| BLAKE2b-256 |
d782de02e15a62d4c7362f39e6ff5389a35ecfae5c2de1601fcb6092c8f61555
|
File details
Details for the file jyhelper-26.7.9.9-py3-none-any.whl.
File metadata
- Download URL: jyhelper-26.7.9.9-py3-none-any.whl
- Upload date:
- Size: 68.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62b9e628055c51dfe95207fff1d8ea093ca6cd8484a9251d7c90adf7821589dd
|
|
| MD5 |
6f0f7df865263c759412d77dcf198208
|
|
| BLAKE2b-256 |
e0a09a89af439b4163b97c4d2b62aaed1956243926651c50ca00ad767e261714
|