m2core rest api web框架
m2core的Python项目详细描述
#M2core Web框架
状态
[![构建状态](https://travis-ci.org/mdutkin/m2core.svg?branch=master)(https://travis-ci.org/mdutkin/m2core.svg?branch=master)
我们混合使用tornado、sqlalchemy和redis。m2core有很多助手来完成普通任务,同时为rest api构建处理程序。当您使用postgresql制作rest服务时,您将获得真正的好处。redis用于缓存访问令牌、角色和角色权限,因此每次授权检查都不需要postgresql的参与。
r/>***一堆用于权限检查、try catch block等的修饰符**
**json中的每个处理程序的每个方法的自动json文档**
**db schema在json中带有自定义字段(我们在react form生成器中以某种方式使用它)**
**helper类用于rest api的单元测试**
ornado.define`设置配置。下面是具有默认值的设置列表:
**服务器选项**
-——————————————————————————————————————————————————————————————————————————————————————————————| str config.py
具有登录权限的ULT用户组str users
default permission default permission str authorized
xsrf cookie|启用或禁用xsrf cookie保护str或bool false
cookie secret tornado cookie secret str gfqeg4t023ty724ythweirhgiuwehrtp
服务器端口TORNADO TCP服务器绑定端口int 8888
语言环境日期、时间、货币等的服务器语言环境str ru_u ru.utf-8|
json缩进空格字符数,用于json响应中的新行int 2
线程池大小后台执行器池大小int 10|
gen_salt bcrypt模块中gen_salt函数的参数int 12
**db options**
值
——————————————————————————————————————————————————————————————————————————————————————| sqlalchemy调试模式bool false
pg主机数据库主机str 127.0.0.1
pg端口数据库端口int
pg端口数据库端口| int 5432
pg_db数据库名str m2core
pg_u用户数据库用户str postgres
pg_u密码数据库密码str密码
pg u pool_u size执行器的池大小int 40
pg_u pool u recycle池循环时间(秒),-1-禁用int-1
**redis选项**
-————————————————————您在根文件夹中的设置并将其命名为"config.py",或者将其放置在任何需要的位置,并通过
`--config-name=my/cool/path/to/config.py`参数将相对路径传递给此配置文件。您可以阅读更多关于tornado.options[此处](http://www.tornado web.org/en/stable/options.html)的信息。
顺便说一下,**m2core**还支持命令行解析。
这里是[示例rest api源](https://github.com/mdutkin/m2core/tree/master/example)。在这个例子中,我试图展示最重要的**m2core**功能。
所有模块都有文档记录,您可以在源代码中阅读每个功能的描述。
**m2core**中的权限管理非常简单。使用继承自"basehandler"的方法实现处理程序,然后执行如下操作:
``python
from handlers import adminusershandler
m2core=m2core()
human\route=r/users/:{id:int}
m2core.add\endpoint(human\route,adminusershandler)
/>m2core.add_endpoint_权限(human_route,{
'get':[选项.默认_权限,'get_user_info',
'post':无,
'put':[选项.默认_权限,'update_user_info',
'delete':[选项.默认_权限,'delete_user',
})
`````
每个路由的每个方法都有一堆权限。您可以再次使用同一个处理程序,使用其他权限的不同路由。
有关详细信息,请阅读"m2core.add_endpoint_permissions"的文档。
关于url mask,我应该说几句话。它支持自己的规则,然后生成龙卷风的url。URL掩码可以是:
-------------------------------------
/users/:{id}:id属性,任何类型
/users/:{id:int}:id int属性te,任意长度
/users/:{id:int(2)}:id int属性,长度为2个数字
/users/:{id:float}|:id float属性
/users/:{id:float(3)}:id float属性,长度为3个数字,包括`,`
/users/:{id:floAT(2,5)}:id float属性,长度介于2到5个数字之间,包括`,`
/users/:{id:string}:id string,任意长度,不带`/`symbol|
/users/:{id:string(2)}:id string,长度为2个符号,不带`/`symbol
/users/:{id:bool}:id bool标志,只接受"0"或"1"`|
/users/:{id:int(0,\[0-100\])}:id int,任意长度(0),但值必须介于"0"和"100"之间
介于"0"和"100"之间
|
状态
[![构建状态](https://travis-ci.org/mdutkin/m2core.svg?branch=master)(https://travis-ci.org/mdutkin/m2core.svg?branch=master)
r/>***一堆用于权限检查、try catch block等的修饰符**
**json中的每个处理程序的每个方法的自动json文档**
**db schema在json中带有自定义字段(我们在react form生成器中以某种方式使用它)**
**helper类用于rest api的单元测试**
ornado.define`设置配置。下面是具有默认值的设置列表:
**服务器选项**
-——————————————————————————————————————————————————————————————————————————————————————————————| str config.py
具有登录权限的ULT用户组str users
default permission default permission str authorized
xsrf cookie|启用或禁用xsrf cookie保护str或bool false
cookie secret tornado cookie secret str gfqeg4t023ty724ythweirhgiuwehrtp
服务器端口TORNADO TCP服务器绑定端口int 8888
语言环境日期、时间、货币等的服务器语言环境str ru_u ru.utf-8|
json缩进空格字符数,用于json响应中的新行int 2
线程池大小后台执行器池大小int 10|
gen_salt bcrypt模块中gen_salt函数的参数int 12
**db options**
值
——————————————————————————————————————————————————————————————————————————————————————| sqlalchemy调试模式bool false
pg主机数据库主机str 127.0.0.1
pg端口数据库端口int
pg端口数据库端口| int 5432
pg_db数据库名str m2core
pg_u用户数据库用户str postgres
pg_u密码数据库密码str密码
pg u pool_u size执行器的池大小int 40
pg_u pool u recycle池循环时间(秒),-1-禁用int-1
**redis选项**
-————————————————————您在根文件夹中的设置并将其命名为"config.py",或者将其放置在任何需要的位置,并通过
`--config-name=my/cool/path/to/config.py`参数将相对路径传递给此配置文件。您可以阅读更多关于tornado.options[此处](http://www.tornado web.org/en/stable/options.html)的信息。
顺便说一下,**m2core**还支持命令行解析。
这里是[示例rest api源](https://github.com/mdutkin/m2core/tree/master/example)。在这个例子中,我试图展示最重要的**m2core**功能。
所有模块都有文档记录,您可以在源代码中阅读每个功能的描述。
**m2core**中的权限管理非常简单。使用继承自"basehandler"的方法实现处理程序,然后执行如下操作:
``python
from handlers import adminusershandler
m2core=m2core()
human\route=r/users/:{id:int}
m2core.add\endpoint(human\route,adminusershandler)
/>m2core.add_endpoint_权限(human_route,{
'get':[选项.默认_权限,'get_user_info',
'post':无,
'put':[选项.默认_权限,'update_user_info',
'delete':[选项.默认_权限,'delete_user',
})
`````
每个路由的每个方法都有一堆权限。您可以再次使用同一个处理程序,使用其他权限的不同路由。
有关详细信息,请阅读"m2core.add_endpoint_permissions"的文档。
关于url mask,我应该说几句话。它支持自己的规则,然后生成龙卷风的url。URL掩码可以是:
-------------------------------------
/users/:{id}:id属性,任何类型
/users/:{id:int}:id int属性te,任意长度
/users/:{id:int(2)}:id int属性,长度为2个数字
/users/:{id:float}|:id float属性
/users/:{id:float(3)}:id float属性,长度为3个数字,包括`,`
/users/:{id:floAT(2,5)}:id float属性,长度介于2到5个数字之间,包括`,`
/users/:{id:string}:id string,任意长度,不带`/`symbol|
/users/:{id:string(2)}:id string,长度为2个符号,不带`/`symbol
/users/:{id:bool}:id bool标志,只接受"0"或"1"`|
/users/:{id:int(0,\[0-100\])}:id int,任意长度(0),但值必须介于"0"和"100"之间
介于"0"和"100"之间
|