Python点击模块,如何将用户名和密码作为参数
Python Click module, how to take in a username and password as arguments
我创建了一个非常简单的 CLI 应用程序,它使用 Click 将用户名和密码作为参数。使用 @click.password_option()
我可以屏蔽密码并让用户确认他们的密码,而无需我这边的任何代码,这很棒。
不过,我注意到 email
字段被输入为 None
。我相信这是因为我正在使用 password.option()
有人对此有解决方法吗?我试过使用 Click 的 Context.invoke()
和 Context.forward()
来传递电子邮件字段,但这没有帮助。
@cli.command()
@click.argument("email", type=str, required=True)
@click.password_option()
def register(email, password):
click.echo(f"{email} {password}")
Output:
> None test
以下代码按预期工作
import click
@click.command()
@click.argument("email", type=str, required=True)
@click.password_option()
def register(email, password):
click.echo(f"{email} {password}")
if __name__ == '__main__':
register()
$ python3 example.py foo@bar.com
$ Password:
$ Repeat for confirmation:
foo@bar.com test
我创建了一个非常简单的 CLI 应用程序,它使用 Click 将用户名和密码作为参数。使用 @click.password_option()
我可以屏蔽密码并让用户确认他们的密码,而无需我这边的任何代码,这很棒。
不过,我注意到 email
字段被输入为 None
。我相信这是因为我正在使用 password.option()
有人对此有解决方法吗?我试过使用 Click 的 Context.invoke()
和 Context.forward()
来传递电子邮件字段,但这没有帮助。
@cli.command()
@click.argument("email", type=str, required=True)
@click.password_option()
def register(email, password):
click.echo(f"{email} {password}")
Output:
> None test
以下代码按预期工作
import click
@click.command()
@click.argument("email", type=str, required=True)
@click.password_option()
def register(email, password):
click.echo(f"{email} {password}")
if __name__ == '__main__':
register()
$ python3 example.py foo@bar.com
$ Password:
$ Repeat for confirmation:
foo@bar.com test