# **otl 工具集**
---
# 安装方式
```shell script
pip install otl
```
---
### 封装企业微信接口
```python
from otl.wechat.wechat_api import WechatApi
GLOBAL_WECHAR_CONFIG = {
'NAME': 'xxx',
#企业的id,在管理端->"我的企业" 可以看到
'CORP_ID': '',
#应用列表 可以配置多个应用
'APP_LIST': {
'warning_robot': { #报警机器人
'APP_ID': '', #APPID
'APP_SECRET': '', #APP密钥
'switch': 'on', #是否开启
},
}
}
if __name__ == '__main__':
we = WechatApi(GLOBAL_WECHAR_CONFIG)
status, res = we.apps['warning_robot'].send(
msg_type='text',
to_users_list=['xxx'],
msg_string='xxx'
)
if not status:
print(res)
```
### 封装mysql方法
```python
from otl.db import MysqlDbBase
class Db1(MysqlDbBase):
host = '1.1.1.1'
port = 3306
user = 'test_user'
password = 'test_pwd'
db = 'test_db'
# 实例化
db1 = Db1()
# 查询操作 -> 返回数据: list
db1.query("select ***")
# 写入操作 -> 返回影响行数: int
db1.insert("insert into ***")
# 更新操作 -> 返回影响行数: int
db1.update("update ***")
# 删除操作 -> 返回影响行数: int
db1.delete("delete ***")
```
### 发送邮件
```python
# -*- coding: utf-8 -*-
from otl.email import EmailApi
CONFIG = {
# 组 支持多个组
'team1': {
'name': '', # 组名 即邮件主题
'user': '', # 发件人
'password': '', # 发件人密码
'smtp': '', # smtp服务器
'port': 25,
'to_list': ['aaa@aa.com'], # 收件人列表
'cc_list': [] # 抄送列表
}
}
if __name__ == '__main__':
ea = EmailApi(CONFIG).team1 # 组名
# 添加文本
ea.add_str('lalala')
# 添加图片
ea.add_image("/a/b/123.jpg")
# 添加表格
ea.add_table([['姓名', '年龄', '性别'], ['aaa', 25, '男'], ['ccc', 25, '男']])
# 添加附件
ea.add_attr("/a/b/wechat.tgz")
status, res = ea.send_email()
if status:
print('success')
else:
print('error: {}'.format(res))
```
Raw data
{
"_id": null,
"home_page": "https://github.com/xuyonggit/otl.git",
"name": "otl",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "xuyong",
"author_email": "xuyong@qq.com",
"download_url": "https://files.pythonhosted.org/packages/fc/50/eb5b0ee54000bc8c29c2dd1af7292c4d932a600bb79cc9fbaf9fa86b08e4/otl-1.10.2.tar.gz",
"platform": null,
"description": "# **otl \u5de5\u5177\u96c6**\n---\n# \u5b89\u88c5\u65b9\u5f0f\n```shell script\npip install otl\n```\n---\n\n### \u5c01\u88c5\u4f01\u4e1a\u5fae\u4fe1\u63a5\u53e3\n```python\nfrom otl.wechat.wechat_api import WechatApi\n\nGLOBAL_WECHAR_CONFIG = {\n 'NAME': 'xxx',\n\n #\u4f01\u4e1a\u7684id\uff0c\u5728\u7ba1\u7406\u7aef->\"\u6211\u7684\u4f01\u4e1a\" \u53ef\u4ee5\u770b\u5230\n 'CORP_ID': '',\n\n #\u5e94\u7528\u5217\u8868 \u53ef\u4ee5\u914d\u7f6e\u591a\u4e2a\u5e94\u7528\n 'APP_LIST': {\n 'warning_robot': { #\u62a5\u8b66\u673a\u5668\u4eba\n 'APP_ID': '', #APPID\n 'APP_SECRET': '', #APP\u5bc6\u94a5\n 'switch': 'on', #\u662f\u5426\u5f00\u542f\n },\n }\n }\n\nif __name__ == '__main__':\n we = WechatApi(GLOBAL_WECHAR_CONFIG)\n status, res = we.apps['warning_robot'].send(\n msg_type='text',\n to_users_list=['xxx'],\n msg_string='xxx'\n )\n if not status:\n print(res)\n```\n### \u5c01\u88c5mysql\u65b9\u6cd5\n```python\nfrom otl.db import MysqlDbBase\n\n\nclass Db1(MysqlDbBase):\n host = '1.1.1.1'\n port = 3306\n user = 'test_user'\n password = 'test_pwd'\n db = 'test_db'\n\n# \u5b9e\u4f8b\u5316\ndb1 = Db1()\n# \u67e5\u8be2\u64cd\u4f5c -> \u8fd4\u56de\u6570\u636e: list\ndb1.query(\"select ***\")\n# \u5199\u5165\u64cd\u4f5c -> \u8fd4\u56de\u5f71\u54cd\u884c\u6570: int\ndb1.insert(\"insert into ***\")\n# \u66f4\u65b0\u64cd\u4f5c -> \u8fd4\u56de\u5f71\u54cd\u884c\u6570: int\ndb1.update(\"update ***\")\n# \u5220\u9664\u64cd\u4f5c -> \u8fd4\u56de\u5f71\u54cd\u884c\u6570: int\ndb1.delete(\"delete ***\")\n```\n\n### \u53d1\u9001\u90ae\u4ef6\n```python\n# -*- coding: utf-8 -*-\nfrom otl.email import EmailApi\nCONFIG = {\n # \u7ec4 \u652f\u6301\u591a\u4e2a\u7ec4\n 'team1': {\n 'name': '', # \u7ec4\u540d \u5373\u90ae\u4ef6\u4e3b\u9898\n 'user': '', # \u53d1\u4ef6\u4eba\n 'password': '', # \u53d1\u4ef6\u4eba\u5bc6\u7801\n 'smtp': '', # smtp\u670d\u52a1\u5668\n 'port': 25,\n 'to_list': ['aaa@aa.com'], # \u6536\u4ef6\u4eba\u5217\u8868\n 'cc_list': [] # \u6284\u9001\u5217\u8868\n }\n}\n\nif __name__ == '__main__':\n ea = EmailApi(CONFIG).team1 # \u7ec4\u540d\n # \u6dfb\u52a0\u6587\u672c\n ea.add_str('lalala')\n # \u6dfb\u52a0\u56fe\u7247\n ea.add_image(\"/a/b/123.jpg\")\n # \u6dfb\u52a0\u8868\u683c\n ea.add_table([['\u59d3\u540d', '\u5e74\u9f84', '\u6027\u522b'], ['aaa', 25, '\u7537'], ['ccc', 25, '\u7537']])\n # \u6dfb\u52a0\u9644\u4ef6\n ea.add_attr(\"/a/b/wechat.tgz\")\n status, res = ea.send_email()\n if status:\n print('success')\n else:\n print('error: {}'.format(res))\n\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "\u8fd0\u7ef4\u5de5\u5177\u96c6",
"version": "1.10.2",
"project_urls": {
"Homepage": "https://github.com/xuyonggit/otl.git"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "149db3980acaa51bc5dbbcc28682ca26c54a9891d17094fb26bd3c1750bf4ee6",
"md5": "8218c8f9ff56b74d79926644c4e81559",
"sha256": "899910f1aee917226b8b33798c976995e79825b781506a64b686e3d01de19ee2"
},
"downloads": -1,
"filename": "otl-1.10.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8218c8f9ff56b74d79926644c4e81559",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 14195,
"upload_time": "2023-11-24T07:29:42",
"upload_time_iso_8601": "2023-11-24T07:29:42.681624Z",
"url": "https://files.pythonhosted.org/packages/14/9d/b3980acaa51bc5dbbcc28682ca26c54a9891d17094fb26bd3c1750bf4ee6/otl-1.10.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fc50eb5b0ee54000bc8c29c2dd1af7292c4d932a600bb79cc9fbaf9fa86b08e4",
"md5": "6cc315f9268c7d039a4bb31c827aa303",
"sha256": "208040f3e915af3a6fe59f5c47c70e1fc214a1739cbc7a5602934b43c1df45ba"
},
"downloads": -1,
"filename": "otl-1.10.2.tar.gz",
"has_sig": false,
"md5_digest": "6cc315f9268c7d039a4bb31c827aa303",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 12711,
"upload_time": "2023-11-24T07:29:44",
"upload_time_iso_8601": "2023-11-24T07:29:44.871195Z",
"url": "https://files.pythonhosted.org/packages/fc/50/eb5b0ee54000bc8c29c2dd1af7292c4d932a600bb79cc9fbaf9fa86b08e4/otl-1.10.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-24 07:29:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "xuyonggit",
"github_project": "otl",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "otl"
}