使用falcon和mongodb的简易webapps

plume的Python项目详细描述


===
羽流
==




图片::https://img.shields.io/pypi/v/flume.svg
:目标:https://pypi.python.org/pypi/flume

…图片::https://img.shields.io/travis/jamesramm/plum.svg
:目标:https://travis ci.org/jamesramm/plum

…图片::https://readthedocs.org/projects/flume/badge/?version=latest
:目标:https://plum.readthedocs.io/en/latest/?徽章=最新
:alt:文档状态

…图片::https://landscape.io/github/jamesramm/flume/master/landscape.svg?style=flat
:目标:https://landscape.io/github/jamesramm/flume/master
:alt:code health

……图片::https://pyup.io/repos/github/jamesramm/plum/shield.svg
:target:https://pyup.io/repos/github/jamesramm/plum/
:alt:updates




a library帮助您制作由mongodb支持的falcon web应用。

features
----

-使用“棉花糖”模式与mongodb的简单接口。这允许使用单个文档
定义,该定义还提供序列化和验证

-标准的“resource”类,用于为rest集合和项创建完整的crud json api。

-根据请求轻松筛选/投影文档

-“filecollection”和“fileitem”资源提供文件上载功能。它们可以配置为使用plumes'basic``filestore`或您自己的存储后端(例如gridfs)

-marshmallow的有用额外字段(``choice``,``slug`,``mongoid`,``password`…)



example
--

代码块::python

from datetime import datetime
from plum import create_app,schema,collection,item
from plum.connection import connect
from plum.fields import slug
from marshmallow import fields,schema

class userschema(schema.mongoschema):
name=fields.str(required=true)
email=fields.email(required=true)
created=fields.datetime(
missing=lambda:datetime.utcnow().isoformat(),
default=lambda:datetime.utcnow().isoformat()
profile=fields.nested(“profile schema”)
slug=slug(从'name'填充)


class profileschema(schema):
“嵌套模式的示例”。
在MongoDB中,这将是一个嵌套文档

传记=fields.str()
profile=image=fields.urldump_to=“profileimage”)



def get_app(database_name=“myapp”)
“创建Falcon应用程序。
我们传递数据库名称,以便可以使用不同的数据库来测试

”在*生成架构实例之前连接到数据库*。
“connect”函数采用与皮蒙哥的。这里我们连接到本地主机。
connect(数据库名称)
user=userschema()
resources=(集合(用户,“/users”),item(用户,'/users/{email}'))
return create_app(resources)


name this file``app.py``并用gunicorn运行它:



design
--

plum打算成为一个轻巧透明的库。它应该称赞并增强falcon&mongodb的使用,但不能妨碍定制开发。
为此,我有一些规则:

-没有魔法。像falcon本身一样,应该很容易跟踪输入到输出。为此,我们有一些软规则,如:
避免混音。MIXIN引入隐式依赖关系,使得对代码的推理变得更加困难。
不要混淆元类和双下划线方法,没有充分的理由。十种更简单、更清晰的方法来达到同样的效果。

-无需再创新。我们尝试使用良好的现有解决方案,然后再滚动自己的。因此,在orm/序列化框架中使用了
的“棉花糖”。

-没有劫持。羽毛是免费的,或者是猎鹰的“附加组件”。它不能取代falcon的直接使用(您可能希望从框架中得到什么)。它解决了一些常见的用例并提供了一些有用的工具。当你想做一些不受支持的事情,直接去Falcon时,它不会妨碍你。










==
=
=
=


<0.1.0(2017-09-25)
----


*PYPI的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java模拟存储库对象从controller testcase返回空结果?   Java扫描程序跳行异常   c#混淆If语句?   java为什么日志中的stacktrace前面没有这一行?   java如何使SSHJ在非标准端口上启动出站SFTP?   java我如何确定为什么每周收入没有在我的程序中显示前三次?   java如何判断堆叠条形图的轴的行为?   java rest json API的Web服务器体系结构   java ClassCastException:javax。摆动按扭   Java在Linux上不读取excel文件(使用Apache POI)   反馈错误后,java Wicket 1.4.9无法从modal使用AjaxRequestTarget!   java方法头中“静态”的含义是什么?   java无法在我的tomcat应用程序中添加外部库   java使用Itext Pdf将图像添加到Pdf文件   java为什么当我调用universe时java3d会闪烁。getCanvas()。getView()。重新油漆();   java Gson嵌套类在使用proguard时为空   java如何确定JSON路径对文档是否有效   java在使用Jsoup解析时保持HTML布尔属性的原始形式   使用Java SDK,如何在Azure存储文件服务中为文件设置元数据?