Skip to content

BaneZhang/jimitlib-py

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

James Iter's library by python

添加自定义状态码示例

  • 枝叶状态码合并
import jimit as ji

own_state_branch = {
        '41250': {
            'code': '41250',
            'zh-cn': '账密不匹配'
            }
        }
        
ji.state_code.index_state['branch'] = dict(ji.state_code.index_state['branch'], **own_state_branch)
print json.dumps(ji.Commons.exchange_state(41250), ensure_ascii=False)

{
    "code": "412",
    "zh-cn": "先决条件失败",
    "en-us": "Precondition Failed",
    "sub": {
        "zh-cn": "账密不匹配",
        "code": "41250"
    }
}

自定义状态码建议

  • 基于各主干的枝叶状态码从50开始,如412主干,则用户自定义枝叶状态码由41250起。

路由器示例

from jimit.router import Router, router_table
from jimit.ji_time import JITime
import unittest

reload(sys)
sys.setdefaultencoding('utf8')

'''
首先配置路由表
'''
router_table['today'] = JITime.today

'''
:param action: 目标路由地址
:param content: 传给目标的参数内容(content可以是一个字典,这样对于给目标传参更为灵活;示例: {'name': 'James', 'gender': 'M'})
'''
print Router.launcher(action='today', content='-')

类型判断示例

参数说明

args_rules = [
    (类型[int|long|str|basestring|list|dict...](必须), 变量名(必须), 取值范围(可选), 必须存在(可选,默认为True))
]
取值范围: 列表为枚举['male', 'female', 'other'], 元组为起止范围(10, 100)
必须存在: 布尔值,默认为True, 当该值为True时,则表示该变量必须存在; 否则,仅当该变量存在时,才匹配该条策略

args = {
    '变量名': 变量值
}

try:
    ji.Check.previewing(args_rules, args)
except ji.PreviewingError, e:
    ret = json.loads(e.message)
    异常处理域

示例1

状态码200为正常,其它都为异常
详细描述在ret['state']['sub']
异常会于PreviewingError类型抛出,可通过json.loads(e.message)来结构化异常描述
更多异常用法请移步参考:
https://github.com/jamesiter/jimitlib-py/blob/master/tests/test_check.py

import jimit as ji

form_rules = [
    (int, 'k', (10, 100))
]

form = {
    'k': 10
}

assert '200' == ji.Check.previewing(form_rules, form)['state']['code'])

示例2

form_rules = [
    (str, 'k')
]

form = {
    'k': 123
}

try:
    ji.Check.previewing(form_rules, form)
except ji.PreviewingError, e:
    ret = json.loads(e.message)
    
assert '41202' == ret['state']['sub']['code']

About

James Iter's common library by python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%