美文网首页
python 第三方库 click

python 第三方库 click

作者: python_菜鸟 | 来源:发表于2020-08-31 13:54 被阅读0次
简介:

Click是一个Python软件包,用于以可组合的方式创建漂亮的命令行界面,所需的代码更少。它是“命令行界面创建工具包”。它是高度可配置的,但具有开箱即用的明智默认设置。

它旨在使编写命令行工具的过程既快速又有趣,同时还防止由于无法实现预期的CLI API而引起的挫败感。

Click 三个特点:

  • 命令的任意嵌套

  • 自动帮助页面生成

  • 支持在运行时延迟加载子命令

安装:
pip install click

建议配合virtualenv在虚拟环境中使用:
virtualenv解决什么问题?除了单击脚本之外,您可能还希望将其用于其他项目。但是您拥有的项目越多,就越有可能使用不同版本的Python本身,或者至少使用不同版本的Python库。让我们面对现实:库经常破坏向后兼容性,并且任何严肃的应用程序不太可能具有零依赖关系。那么,如果您的两个或多个项目具有相互依赖的关系,您该怎么办?

Virtualenv进行救援!Virtualenv启用了多个并行安装的Python,每个项目一个。它实际上并没有安装Python的单独副本,但确实提供了一种使不同项目环境保持隔离的聪明方法。让我们看看virtualenv是如何工作的。

pip install virtualenv --user

安装virtualenv后,只需启动shell并创建自己的环境即可。我通常在以下位置创建一个项目文件夹和一个venv 文件夹:

# 创建环境
$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing setuptools, pip............done.

mac and linux 系统:

$ . venv/bin/activate # 激活环境
$ deactivate # 退出环境

windows系统:

$ venv\scripts\activate # 激活环境
$ deactivate # 退出环境
应用
  • click.command() 装饰器装饰一个函数即可将其转换为可调用脚本
import click

@click.command()
def hello():
    click.echo('Hello World!')

if __name__ == '__main__':
    hello()

结果:

$ python hello.py
Hello World!
  • click.echo(message = None,file = None,nl = True,err = False,color = None) 将消息和换行符打印到给定的文件或标准输出中
    参数:

  • message --要打印的消息

  • file --要写入的文件(默认为stdout)

  • err --如果设置为true,则文件默认为stderr而不是 stdout。这比打电话给get_text_stderr()自己更快更容易 。

  • nl --如果设置为True(默认值),则会在后面打印换行符。

  • color --控制终端是否支持ANSI颜色。默认为自动检测。

# 初始化数据库
@click.command()
def initdb():
    click.echo('Initialized the database')
  • click.group() 允许脚本的任意嵌套
# 用法一
@click.group()
def cli():
    pass

@click.command()
def initdb():
    click.echo('Initialized the database')

@click.command()
def dropdb():
    click.echo('Dropped the database')

cli.add_command(initdb)
cli.add_command(dropdb)

# 用法二
@click.group()
def cli():
    pass

@cli.command()
def initdb():
    click.echo('Initialized the database')

@cli.command()
def dropdb():
    click.echo('Dropped the database')

if __name__ == '__main__':
    cli()
  • click.option()/click.argument() 添加参数
@click.command()
@click.option('--count', default=1, help='number of greetings')
@click.argument('name')
def hello(count, name):
    for x in range(count):
        click.echo('Hello %s!' % name)

调用结果:

$ python hello.py --help
Usage: hello.py [OPTIONS] NAME

Options:
  --count INTEGER  number of greetings
  --help           Show this message and exit.
  • 扩展应用

flask web 项目

import os
import sys

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import click

WIN = sys.platform.startswith('win')
if WIN:
    prefix = 'sqlite:///'
else:
    prefix = 'sqlite:////'

app = Flask(__name__)

app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'dev')
app.config['SQLALCHEMY_DATABASE_URI'] = prefix + os.path.join(os.path.dirname(app.root_path), os.getenv('DATABASE_FILE', 'data.db'))
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

@app.cli.command()
@click.option('--drop', is_flag=True, help='Create after drop.')
def initdb(drop):
    """Initialize the database."""
    if drop:
        db.drop_all()
    db.create_all()
    click.echo('Initialized database.')

更多知识请查看click官方文档

相关文章

  • python第三方库

    1. Click Click是一个用来快速构建好看的命令行接口的第三方库,相比python自带的argparse库...

  • 2020年5月6日&7日 第八章 Python第三方库安装及常用

    第八章 Python第三方库安装及常用库介绍 8.1 Python第三方库简介 8.2 Python第三方库安装 ...

  • Python Click

    Python Click 介绍 最近发现一个非常nice的python库: Click, 对热衷于写脚本的"Scr...

  • python 第三方库 click

    简介: Click是一个Python软件包,用于以可组合的方式创建漂亮的命令行界面,所需的代码更少。它是“命令行界...

  • python基础操作

    Python 第三方库安装技巧 Python 第三方库安装技巧 mac 装python库 装pip。然后用pip安...

  • 技能 | IT@信息采集

    Python自带标准库urllib 第三方requests库 第三方库XPath 第三方库BeautifulSoup

  • 查看python库文档

    安装完python第三方库以后,经常需要查询其文档,其实python就自带文档查看器。可以查看所有内置库和第三方库...

  • 03 ---- Python 中 Time 库的使用、

    Tiem 库是Python中处理时间的标准库,当然Python 中含有丰富的第三方库,今天我了解到了 Python...

  • Python命令行

    sys.argv(模块自带)argparse(内置库)cli(第三方库)python-fire(第三方库, goo...

  • Python程序发布到 PyPI

    PyPI(Python Package Index)是python官方的第三方库的仓库,所有人都可以下载第三方库或...

网友评论

      本文标题:python 第三方库 click

      本文链接:https://www.haomeiwen.com/subject/kbsusktx.html