用户权限验证后增加用户和组织的简短信息

wisdoms的Python项目详细描述


[目录]

use

  1. 项目名称
  2. 中国石油天然气股份有限公司

  • 发电厂

确保安装了setuptools和wheel。

important:必须在setup.py中修改包的版本并删除文件夹(build、dist、egg info)

python setup.py sdist bdist_wheel

  • 上传-上传代码

在进行此操作之前安装绳线(qays:i)

twine upload dist/*


  • 安装-

pip install wisdoms

  • 查找最新的智慧包-Disease

pip list --outdated

  • 升级-新建

pip install wisdoms --upgrade

数据包使用:

  • ms.py:

# 权限验证fromwisdoms.msimportpermit,add_uid,add_userhost={'AMQP_URI':"amqp://guest:guest@localhost"}auth_=permit(host)user_=add_user(host)uid_=add_uid(host)classA:@auth_deffunc_need_auth(self,data):"""        1.进入这个方法之前会验证权限,data需带有token        2.之后的data的数据结构:        {'uid':用户id, 'full_user':用户全部信息字典类型,'data':前端传来的data,'token':token,'full_org':当前组织, 'user':精简用户信息,'org':精简组织信息}        :param data:        :return:        """user=data.get('user')data=data.get('data')# ...@user_deffunc_need_user(self,data):"""        1.进入这个方法不需要验证权限,需要token返回用户信息        2.之后的data的数据结构:        {'uid':用户id, 'full_user':用户全部信息字典类型,'data':前端传来的data,'token':token,'full_org':当前组织, 'user':精简用户信息,'org':精简组织信息}        :param data:        :return:        """user=data.get('user')data=data.get('data')# ...@uid_deffunc_need_uid(self,data):"""        1.进入这个方法不需要验证权限,需要token只返回用户id        2.之后的data的数据结构:{'uid':用户id, 'data':前端传来的data,'token':token}        :param data:        :return:        """uid=data.get('uid')data=data.get('data')# ...
  • 配置py

# 读取yml配置fromwisdoms.configimportc# gains item of YML configprint(c.get('name'))# transforms class into dictd=c.to_dict()print(d['name'])
  • 公共软件包

# 返回执行后的状态码fromwisdoms.commonsimportrevert,codes,successdeffunc():# do something# revert(codes.code) or revert(number)# return revert(1)returnrevert(codes.ERROR)deffoo():# return revert(code, data, desc)returnrevert(codes.SUCCESS,{'data':'data'},'返回成功描述信息')defdone():# simplified revert where success execute# return success(data) or success()returnsuccess()
  • 实用py

# 多个字符串连接成路径fromwisdoms.utilsimportjoint4pathprint(joint4path('abc','dac','ccc'))# $: abc/dac/ccc# ------------------------------------------------------------------# 对象转字典fromwisdoms.utilsimporto2do2d(obj)# ------------------------------------------------------------------# 捕获异常装饰器fromwisdoms.utilsimportfunc_exceptionex=func_exception(codes.WARNING)@exdeffunc():pass# ------------------------------------------------------------------# 捕获异常类装饰器fromwisdoms.utilsimportcls_exception# ex为方法装饰器xpt_cls=cls_exception(ex)@xpt_clsclassA:name='a'def__init__(self,param):self.desc=paramdeffunc1(self,param):returnself.desc+param@classmethoddeffunc2(cls,param):print(cls)print('func2',param)raiseException('func2 error')@staticmethoddeffunc3(param):print('func3',param)raiseException('func3 error')aa=A('param')# 注意: 该装饰器的静态方法和类方法必须用实例调用print(aa.func1('1111111'))print(aa.func2('2222222'))print(aa.func3('3333333'))
  • ms.py

# 应用微服务 基类fromwisdoms.msimportms_basefromxximportROLES# ROLES 数据结构# import json# defRole = {#     'role': 'default',#     'name': '默认角色',#     'desc': '',#     'functions': ['user_register', 'user_update', 'user_logoff', 'user_search', 'user_audit', 'user_login',#                   'user_logout', 'org_register', 'org_update', 'org_dismiss', 'org_search', 'org_audit',#                   'org_user_list', 'app_register', 'app_update', 'app_delete', 'app_search', 'app_audit',#                   'user_org_apply', 'user_org_choose', 'user_org_list', 'user_org_audit', 'user_org_update',#                   'user_org_rid', 'user_app_apply', 'user_app_apply_list', 'user_app_audit', 'user_app_update',#                   'user_app_rid', 'user_app_router'],#     'router': {}# }# ROLES = list()# ROLES.append(json.dumps(defRole))# 不需要的不写MsBase=ms_base(MS_HOST,name='XX应用',roles=ROLES,types='free',entrance='/xx/index')classA(MsBase):pass# -----------------------------------------------fromwisdoms.msimportclosure_crfcrf=closure_crf(config('ms_host'))
  • pg_db.py

fromwisdoms.pg_dbimportsession_exceptionse=session_exception(session)@sedeffunc():# raise exception extend SqlalChemyErrorpass# ------------------------------------------------------------------# session 增删改查表基础类,已经实现增删改查通用方法,直接继承就能使用fromwisdoms.dbimportrepo_refRepoBase=repo_ref(session)classFooRepo(RepoBase):"""    common add, delete, update, get(include search) function finished    """pass# Foo is the model of tablefoo=FooRepo(Foo)# you can do follow listfoo.add(name='name',desc='desc',...)foo.update(id,name='rename',desc='redesc',...)foo.delete(id)foo.get()# return list of all objectsfoo.get(id)# return a objectfoo.get(name='name',...)# return list of objects what you search#-----------------------------------------------------postgresql使用ARRAYJSON使用jsonb来存储example:notes=Column(CastingArray())classCastingArray(ARRAY):defbind_expression(self):returncast(JSONB,self)#---------------------------------------------------------定制PGmodel五个基本属性classBaseModelPG(declarative_base()):__abstract__=True# 定制基本属性id=Column(Integer,nullable=False,primary_key=True,unique=True,autoincrement=True,)uid=Column(Integer,nullable=False)oid=Column(Integer,nullable=False)create_time=Column(DateTime,default=datetime.now(),onupdate=datetime.now())update_time=Column(DateTime,default=datetime.now(),)使用例子classSomeEntity(BaseModelPG):name=models.CharField(max_length=1000)address=models.CharField(max_length=1000,default='')info=models.CharField(max_length=2000,default='')

  • 顶级_:智慧,代表天智,智慧
  • 合作方式
  • [谚]

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

推荐PyPI第三方库


热门话题
如何从Java调用AmazonAWSAPI?   Java中的渗流   java在dao端使用逻辑不是一个好的实践吗?   java Swing绘制网格。韦尔德结果   java如何设置PlusOneButton对话框的共享选项的默认文本   java如何在firebase存储中管理多个上载/下载?   java Wicket在多个位置显示相同的文本   java使用j2me通过蓝牙从一个手机向另一个手机发送短信   java为什么不让DialogWait框自动关闭?   java Visual Studio代码JDBC访问Derby数据库   在java中如何根据日期从文件夹中获取文件   java如何从数据库加载多个数据   java匿名类和同步以及“this”   java无法使用Selenium上载文件   java多线程JAXR调用parallelStream还是Futures?   获取要编译的Netbeans Java程序   java检查二叉树是否为有效BST的函数中的“min”和“max”是什么?   java有人能解释为什么这段代码只在构造函数中工作吗?   java如何将多种类型的用户重定向到各自的活动?