使用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第三方库


热门话题
Jetty中的java Set AccessControlAllowOrigin   java我已将我的apk上传到google play,但没有显示任何设备兼容   在内存中创建mdb副本时发生java错误   是否有类似jQuery的选择器用于JavaXML解析?   C++不能使用JNI使用外部java类   java如何创建jpql查询以获取没有关联父级的实体   maven如何重新部署java web app cargo   java如何使用Gson将嵌套的json对象添加到文件中?   用于inputfield的java Sencha GXT自定义货币格式   java在容器上设置游标,而不更改子组件的游标   java JDBI使用fluent接口选择(非对象查询)   安卓 Firebase runTransaction不工作MutableData为空   java如何修复快速排序代码   java正则表达式验证密码,密码只接受固定长度之间的值   javascript拆分值并以格式化方式显示   java Asynctask:doInBackground中Asynctask和process的两个值