使用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的第一个版本。
羽流
==
图片::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的第一个版本。