Project description

sanic-mongo

====================

sanic的mongodb异步工具,灵感来源自 `官方例子 `_ 的封装,

目的只是为了简化操作.

更新

-----------------------

* v1.7.1 修正了mongo连接权限可能引发的问题,现在可以配置每个连接是否是只能连database,默认为False.{"uri":xxxx,"only_db":True}

* v1.6.0 修正了验证无法通过的问题

* v1.5.0 将接口调整至和sanic-aioorm一致.

特点 Features

-------------------------

* `motor `_ 支持的操作都支持

* 支持3.5版本以上的

* 支持多数据库

* 支持mongodb和gridfs

依赖 Requirements

-----------------------------

1. motor>=1.1

2. pymongo>=3.4.0

3. sanic>=0.4.1

安装 Installation

--------------------------

- ``pip install sanic-mongo``

用法

----------------------------

mongo需要给`app.config`设置关键字`MONGO_URIS`,它是一个由mongodb名字和url组成的字典.

同时也可以使用`Mongo.SetConfig(app,**kws)`来注册kws的内容到`MONGO_URIS`.

而使用的时候可以访问`app.mongo[mongodb名字]`访问对应的db

gridfs与之类似,只是关键字是`GRIDFS_SETTINGS`,而访问需要使用`app.GridFS[GridFS名字]`

例子 Example

-----------------------------------

1. mongodb

.. code:: python

from sanic import Sanic

from sanic.response import json

from sanic_mongo import Mongo

app = Sanic(__name__)

mongo_uri = "mongodb://{host}:{port}/{database}".format(

database='test',

port=27017,

host='localhost'

)

Mongo.SetConfig(app,test=mongo_uri)

Mongo(app)

@app.get('/objects')

async def get(request):

docs = await app.mongo['test'].test_col.find().to_list(length=100)

for doc in docs:

doc['id'] = str(doc['_id'])

del doc['_id']

return json(docs)

@app.post('/objects')

async def new(request):

doc = request.json

print(type(app.mongo['test']))

object_id = await app.mongo['test']["test_col"].save(doc)

return json({'object_id': str(object_id)})

if __name__ == "__main__":

app.run(host='127.0.0.1', port=8000,debug=True)

2. gridfs

.. code:: python

from sanic import Sanic

from sanic.response import json,text

from sanic_mongo import GridFS

app = Sanic(__name__)

mongo_uri = "mongodb://{host}:{port}/{database}".format(

database='test',

port=27017,

host='localhost'

)

GridFS.SetConfig(app,test_fs=(mongo_uri,"fs"))

GridFS(app)

@app.get('/pics')

async def get(request):

cursor = app.GridFS["test_fs"].find()

result = [{i._id:i.name} async for i in cursor]

return json({"result":result})

@app.post('/pics')

async def new(request):

doc = request.files.get('file')

async with app.GridFS["test_fs"].open_upload_stream(filename=doc.name,

metadata={"contentType": doc.type}) as gridin:

object_id = gridin._id

await gridin.write(doc.body)

return json({'object_id': str(object_id)})

if __name__ == "__main__":

app.run(host='127.0.0.1', port=8000,debug=True)

Project details

Project links

Statistics

View statistics for this project via Libraries.io, or by using our public dataset on Google BigQuery

Meta

License: Apache License 2.0

Maintainers

Download files

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

Files for sanic-mongo, version 1.7.1

Filename, size

File type

Python version

Upload date

Hashes

File type

Wheel

Python version

3.6

Upload date

Aug 28, 2017

Hashes

View

File type

Source

Python version

None

Upload date

Aug 28, 2017

Hashes

View

Close

Hashes for sanic_mongo-1.7.1-py3-none-any.whl

Hashes for sanic_mongo-1.7.1-py3-none-any.whl

Algorithm

Hash digest

SHA256

db7a4fa40dc53fdf13057d92087502e65a48fa9f6a7ac132d990ee8b604f3319

Copy

MD5

69e9962f05edaedd2e70cdbd48b3b94a

Copy

BLAKE2-256

02324b79911d7595ab2982be864b91fc874ce6d845522babf3c5beaa8ff20367

Copy

Close

Hashes for sanic-mongo-1.7.1.tar.gz

Hashes for sanic-mongo-1.7.1.tar.gz

Algorithm

Hash digest

SHA256

05a8cf3896c4f0cf59a0468ab8827f4e9d7124d46eec19c6d14379354722882e

Copy

MD5

731b46ceede74b7f4451e3cd2bb9996e

Copy

BLAKE2-256

f893fdc45518391ef341b185a4e4b94307f39eeeb2cf32fa5ec80190490d460c

Copy

python sanic orm_sanic-mongo · PyPI相关推荐

  1. python sanic orm_Sanic + 前端MVVM 一种新一代Python高性能全栈开发实践

    SanicCRUD-vue Sanic + 前端MVVM 一种新一代Python高性能全栈开发实践 背景 本项目将使用Sanic + Vue2 + Webpack2 配合最简单CRUD的逻辑来展示一个 ...

  2. python sanic加速_python微服务sanic 使用异步zipkin(2) - 一步步创建Sanic插件: sanic-zipin...

    关键字:python sanic 微服务 异步 zipkin sanic-plugin 插件 Sanic-Plugins-Framewor Pypi发布 所需环境:python3.7, Docker, ...

  3. python开发微信小程序-微信小程序开发:python+sanic 实现小程序登录注册

    开发微信小程序时,接入小程序的授权登录可以快速实现用户注册登录的步骤,是快速建立用户体系的重要一步.这篇文章将介绍 python + sanic + 微信小程序实现用户快速注册登录全栈方案. 微信小程 ...

  4. python脚本监控mysql数据库_Python脚本监控mysql数据库,Python脚本监控mongo数据库

    任务:应帅气的领导要求,需要监控生产环境mysql和mongo数据库服务.不仅要connect successful还要进行数据交互进一步确认数据库服务正常. 思路: mysql和mongo 数据库i ...

  5. 【Python】如何在PyPI上发布自定义软件包

    1. 引言 在Python中我们经常使用pip来安装第三方Python软件包,其实我们每个人都可以免费地将自己写的Python包发布到PyPI上,供他人来通过pip进行安装. 在本文中,我们将从一步一 ...

  6. python sanic openapi_Python sanic-openapi3e包_程序模块 - PyPI - Python中文网

    Sanic OpenAPI V3e 对sanic的openapi v3支持.记录并描述所有参数, 包括Sanic路径参数.Python3.5+ 安装pip install sanic-openapi3 ...

  7. python 发布包_如何将自己的Python包发布到PyPI

    以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了.趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此 ...

  8. Python 进阶 — 创建本地 PyPI 仓库与 Python 程序的离线部署

    目录 文章目录 目录 创建本地 PyPI 仓库 安装 pypiserver 上传 Python 安装包 使用私有 PyPI 仓库 Python 程序的离线部署 pip download 获取必须的 P ...

  9. python sanic部署_Sanic框架配置操作分析

    本文实例讲述了Sanic框架配置操作.分享给大家供大家参考,具体如下: 简介 Sanic是一个类似Flask的Python 3.5+ Web服务器,它的写入速度非常快.除了Flask之外,Sanic还 ...

最新文章

  1. 完整mes代码(含客户端和server端_Ice简介+Qt代码示例
  2. apache-tomcat-6.0.39的配置
  3. [转载]_tmain main wmain WinMain
  4. Java栈内存、堆内存、方法区对对象和引用的关系
  5. pythonの鉴黄之路(四)——urllib模块批量下载
  6. 中央2套-理财教室-如何购买保险
  7. Numpy——浅拷贝与深拷贝
  8. axios发送网络请求
  9. cgblib 代理接口原理_一文搞懂Java中静态代理、动态代理以及CGLIB代理
  10. ARM64 LFS 11.1编译成功
  11. Android游戏破解练习-大圣降魔录
  12. 18.数据统计之分组对象与apply函数
  13. IOS逆向学习之路之iPod touch4 越狱心得
  14. 微信小程序原生将两张图片合成一张并保存至手机中
  15. 国内哪家公司做网站最好?
  16. 如何成为一个优秀的数据分析师?
  17. 项目负责人的心得体会
  18. Qt工程中如何添加.pri文件
  19. Class not found: “com.kuang.dao.UserDaoTest“
  20. TNF抑制剂相关的肿瘤风险:阿达木单抗、依那西普和英夫利昔单抗随机对照试验的荟萃分析...

热门文章

  1. 【小技巧】下载一些网站视频的方式
  2. explain ref_什么是MySQL的执行计划(Explain关键字)?
  3. 经典男人感悟100条
  4. 中国手机持续以5G配合性价比围攻,苹果无奈对iPhone降价
  5. Python爬取链家成都小区信息
  6. 用spark streaming实现黑名单实时过滤
  7. .NET客户端实现Redis中的管道(PipeLine)与事物(Transactions)(八)
  8. dedeCMS采集内容无需写规则方法
  9. 安卓怎么禁止指定两个应用分屏
  10. git学习总结01 — 初始化