diay-依赖注入库
dia的Python项目详细描述
#diay-依赖注入库
[![构建状态](https://travis-ci.org/anlutro/diay.py.svg?branch=master)(https://travis ci.org/anlutro/diay.py)
[![pypi上的最新版本](https://img.shields.io/pypi/v/diay.svg?maxage=2592000)(https://pypi.org/project/diay)
[![许可证](https://img.shields.io/badge/license mit blue.svg)(https://opensource.org/licenses/mit)
diay是用于python 3.5及更高版本的[依赖注入](https://en.wikipedia.org/wiki/dependency_injection)/[控制反转](https://en.wikipedia.org/wiki/inversion_of廑control)库。它利用3.5中引入的类型提示,允许您轻松调用函数或构造需要特定类型对象才能工作的类。
使用来自API的一些数据呈现Jinja2模板。
``python
injector=diay.injector()
injector.set_instance(someconfigClass,my_config_object)
@injector.provider
def make_Jinja_environment()->;jinja2.环境:
返回jinja2.environment()
@injector.provider
def make_api_client(config:someconfigClass)->;some.apiclient:
返回some.apiclient(config.api_token)
def render(j2env:jinja2.environment,apiclient:some.apiclient:
data=apiclient.get('/some/data')
template=j2env.get_template('some-template.html.j2',data=data)
return template.render()
html=injector.call(render)
```
[![构建状态](https://travis-ci.org/anlutro/diay.py.svg?branch=master)(https://travis ci.org/anlutro/diay.py)
[![pypi上的最新版本](https://img.shields.io/pypi/v/diay.svg?maxage=2592000)(https://pypi.org/project/diay)
[![许可证](https://img.shields.io/badge/license mit blue.svg)(https://opensource.org/licenses/mit)
diay是用于python 3.5及更高版本的[依赖注入](https://en.wikipedia.org/wiki/dependency_injection)/[控制反转](https://en.wikipedia.org/wiki/inversion_of廑control)库。它利用3.5中引入的类型提示,允许您轻松调用函数或构造需要特定类型对象才能工作的类。
使用来自API的一些数据呈现Jinja2模板。
``python
injector=diay.injector()
injector.set_instance(someconfigClass,my_config_object)
@injector.provider
def make_Jinja_environment()->;jinja2.环境:
返回jinja2.environment()
@injector.provider
def make_api_client(config:someconfigClass)->;some.apiclient:
返回some.apiclient(config.api_token)
def render(j2env:jinja2.environment,apiclient:some.apiclient:
data=apiclient.get('/some/data')
template=j2env.get_template('some-template.html.j2',data=data)
return template.render()
html=injector.call(render)
```