我正在使用 Python 和 Click 库构建 CLI 应用程序。
我如何实现以下用例:
首先,我只希望子命令后跟一个参数,不需要任何选项:
$ myapp subcommand argument
Run Code Online (Sandbox Code Playgroud)
这是直截了当的。
但是我如何编写代码,如果设置了参数2,还需要一些选项?
$ myapp subcommand argument2 -o1 abc -o2 def
Run Code Online (Sandbox Code Playgroud)
例如:
不需要任何选项:
$ ./myapp.py install basic
Run Code Online (Sandbox Code Playgroud)
需要以下选项:
$ ./myapp.py install custom -o1 abc -o2 def
Run Code Online (Sandbox Code Playgroud)
此外,我不知道如何选择参数,这意味着用户必须在“基本”或“自定义”之间进行选择。如果他选择“自定义”,他需要添加一些选项。
我尝试利用 @aws-sdk/lib-dynamodb 来简化从 AWS DynamoDB 的数据检索。
# aws.js
const {DynamoDBClient,ScanCommand} = require('@aws-sdk/client-dynamodb');
const { DynamoDBDocumentClient } = require('@aws-sdk/lib-dynamodb');
const { fromIni } = require('@aws-sdk/credential-provider-ini');
const client = new DynamoDBClient({
credentials: fromIni({ profile: process.env.AWS_PROFILE }),
region: process.env.AWS_DEFAULT_REGION,
});
const ddb_client = DynamoDBDocumentClient.from(client);
const listItemsDDB = async (params) => {
try {
const command = new ScanCommand(params);
const data = await ddb_client.send(command);
return data;
} catch (err) {
throw Error(err);
}
};
module.exports = {listItemsDDB };
Run Code Online (Sandbox Code Playgroud)
我将函数导入到我的rest_api.js. 一切都基于 Express js …