在yaml中怎么具体使用类似${read_config()}的方法
时间: 2023-05-11 11:05:34 浏览: 59
在yaml中,可以使用类似${read_config()}的方法来引用外部配置文件中的值。具体使用方法如下:
1. 首先,在yaml文件中定义一个变量,例如:
```
database:
host: ${read_config('database.host')}
port: ${read_config('database.port')}
```
2. 然后,在外部配置文件中定义这个变量的值,例如:
```
database.host: localhost
database.port: 3306
```
3. 最后,在程序中加载yaml文件,并解析其中的变量,例如:
```python
import yaml
with open('config.yaml', 'r') as f:
config = yaml.safe_load(f)
print(config['database']['host']) # 输出:localhost
print(config['database']['port']) # 输出:3306
```
注意,这里的${read_config()}是一个自定义函数,需要在程序中实现。
相关问题
from common.yaml_utli import read_config_yaml class SendRequest: # 会话,回话对象能够自动管理Cookie关联, session = requests.session() def __int__(self, base, base_url): self.base_url = read_config_yaml(base, base_url) def all_send_request(self, method, url, **kwargs): # 处理基础路径 self.base_url = self.base_url + url #发送请求 res = SendRequest.session.request(method=method, url=self.base_url, **kwargs) return res print(SendRequest("base","base_appsvr_url"))这段代码有什么问题
这段代码有以下问题:
1. `requests` 模块没有被导入,需要添加 `import requests`。
2. `__int__` 方法名应该是 `__init__`,表示初始化对象时调用的方法。
3. `self.base_url` 在 `all_send_request` 方法中被重新赋值,这样会导致基础路径重复拼接。应该在 `__init__` 方法中赋值一次即可。
4. `read_config_yaml` 函数未被定义,需要导入或者补全该函数的定义。
5. 最后一行代码没有调用 `all_send_request` 方法,应该添加方法调用。
修正后的代码应该类似于这样:
```python
import requests
from common.yaml_utli import read_config_yaml
class SendRequest:
# 会话,回话对象能够自动管理Cookie关联,
session = requests.session()
def __init__(self, base, base_url):
self.base_url = read_config_yaml(base, base_url)
def all_send_request(self, method, url, **kwargs):
# 处理基础路径
full_url = self.base_url + url
# 发送请求
res = SendRequest.session.request(method=method, url=full_url, **kwargs)
return res
# 调用示例
sr = SendRequest("base", "base_appsvr_url")
response = sr.all_send_request('get', '/api/v1/users')
print(response.text)
```
_config.yml
`_config.yml`通常是Jekyll(一个静态网站生成器)项目的配置文件,用于定义站点的各种设置,如标题、作者、布局、主题、变量等等。这个文件通常位于项目根目录下,以`.yml`(YAML格式)扩展名。
以下是一个基本的`_config.yml`示例,展示了部分可能的配置项:
```yaml
title: My Blog Title
author:
name: John Doe
bio: "A brief description about the author."
defaults:
-
scope:
path: ""
type: "posts"
values:
layout: "post"
read_time: true
markdown: kramdown
# 更多其他配置...
```
在这个例子中,`title`设置了网站的标题,`author`定义了博主信息,`defaults`定义了默认的页面布局和特性(比如是否显示阅读时间)。你可以根据自己的需求添加或修改这些配置。
阅读全文