Guide de démarrage rapide module de commande en ligne Python Cliquez

Guide de démarrage rapide module de commande en ligne Python Cliquez

A propos Cliquez?

Cliquez sur le module est que la prochaine Gansha, tout simplement, il est la fonction de certains de notre script Python, par
décorateur décoré de Cliquez pour ajouter des mots clés et le formulaire d'appel de fonction sous la forme de ligne de commande le passage de paramètre, puis exécution. Je ne comprends pas n'a pas d' importance, nous allons aller étape par étape, essentiellement selon ma demande réelle d'écriture.
Cet article ne comporte pas trop de grammaire complexe et théorie, utilisera un langage simple et nous partageons.

installer

python3 -m pip install click

Un exemple simple

Tout d'abord, nous créons un demo.py

import click #(1)
@click.command() #(2)
def main():
    click.echo("hello click") #(3)

if __name__ == '__main__':
    main()

Décorateurs @click.command()cliqueront dans nos objets de package de fonction, nous pouvons appeler des méthodes dans la fonction de clic, est utilisé click.echo, son rôle est similaire à notre impression, la sortie.
En ligne de commande afin que nous puissions exécuter cette ligne de code

python3 demo.py

Eh bien, notre premier exemple d'une escapade, nous avons trouvé cette fois -ci sans l'utilisation d'utilisations de code de clic ne semble pas de différence.
Ensuite , nous devait développer, et si nous avons besoin de passer un numéro, puis imprimez cette fois -ci , nous pouvons écrire le code.

Notre premier argument passé

import click

@click.command()
@click.option("-n", "--num", help="input a num")
def main(num):
    click.echo(f"{num =}")

if __name__ == '__main__':
    main()

Voici la base de notre code précédent ajoute à la fonction principale @click.optiondécorateur.

Je suis allé à dire sous la signification de ces paramètres
-n : des moyens que nous pouvons l' utiliser, lorsque l' attention est un paramètre court de ligne de commande pour spécifier le nom du « - »
--num : est le nom complet du premier argument, nous lorsque la valeur du programme reçu l' utiliser. Notez que deux courtes « - ».
Aide : Sur la ligne de commande, tapez « python3 demo.py --help » quand il peut nous inciter à ce programme qui commandes peuvent être utilisées. Et nous utilisons la ligne de commande une raison.
Ensuite , notre fonction principale est le nom du paramètre, le nom complet du paramètre que nous voulons recevoir et imprimés click.echo. , f"{num=}"Sucre syntactique après python 3.8, num = 3 si elle est équivalente à la num = 3.
Enfin, rappelez - vous que dans __main__la mise en œuvre de notre méthode principale à l' intérieur.
Eh bien, introduit sur le code, nous pouvons exécuter et exécuter l'exemple: Tout d'
abord, ne présumez pas que nous savons qu'il a plusieurs paramètres.

python3 demo.py --help 

Par l'aide que nous pouvons obtenir les informations suivantes

Usage: demo.py [OPTIONS]

Options:
  -n, --num TEXT  input a num  #这是定义该字段help的提示内容
  --help          Show this message and exit.

Utilisation: correspond à nos actuels nom de fichier
Options: est une argumentation, un argument divisé - Le nom complet de paramètres commençant - le début du paramètre abrégé, et.
À l' époque , nous pouvons voir qu'il est de type TEXT. Suivi par les informations qui ont poussé des paramètres grâce à l'aide que nous pouvons définir.

 python3 demo.py -n 3
 #输出
 num ='3'

ou

 python3 demo.py --num 3
 #输出
 num ='3'

Les deux procédés ci-dessus sont introduites équivalent en utilisant une ligne.

Maintenant, pensez à un problème, si nous avons besoin du type de valeur numérique num 3 comment l'obtenir?

Déclarer le type de paramètre

Voici deux façons de fournir (bien sûr pas les deux) de
méthode: Utilisez le mot - clé de type, tapez le type python

@click.option("-n", "--num",type=int,help="input a num")

Exécutez à nouveau le code

 python3 demo.py -n 4
 #输出
 num =4

Lors de l' affichage des informations d'aide lorsque le texte devient le ENTIER.
Deuxième méthode: Utilisez le mot - clé par défaut, spécifiez une valeur par défaut de 1

@click.option("-n", "--num",default=1,help="input a num")

La valeur par défaut est numérique, nous saurons que nous commandions paramètre de ligne de type int,
où les paramètres de traitement de type spécifié, les valeurs par défaut définies aussi. Définir comme valeurs par défaut des paramètres, vous ne pouvez pas spécifier sa valeur, cette fois -ci utilisera la valeur par défaut.
Si nous utilisons les informations d'aide et trouver ci - dessus méthode vue un peu différent. A ce moment , nous pouvons en spécifiant un autre mot - clé, il affiche des informations d'aide à la valeur par défaut

@click.option("-n", "--num",default=1,help="input a num",show_default=True)

Nous pouvons faire en ajoutant de la valeur par défaut de show_default est affiché dans les informations d'aide, le format du contenu comme suit:

Usage: demo.py [OPTIONS]

Options:
  -n, --num INTEGER  input a num  [default: 1]
  --help             Show this message and exit.

Couplé avec un paramètre

Modifier la partie de code du code sur la base de ce qui précède, le paramètre principal est d'ajouter un nouvel identifiant.

import click


@click.command()
@click.option("-i", "--id", required=True, help="input an id")
@click.option("-n", "--num", type=int, help="input  a number", show_default=True)
def main(id, num):
    click.echo(f"your {id=} {num=}")

if __name__ == '__main__':
    main()

Avant la fonction d'ajouter la @click.optiondécoration peut être.
Ici , j'ajouter un paramètre pour l'id, id est parce que dans des circonstances normales ne peuvent pas être vide, afin que nous puissions required = Truelimiter, il indique que le paramètre est passer des paramètres obligatoires. Si vous ne passez pas sur les erreurs

python3 demo.py -n 1234 
#没给id传参,出现错误,提示缺少参数。
Usage: demo.py [OPTIONS]
Try "demo.py --help" for help.

Error: Missing option "-i" / "--id".

L'utilisation appropriée devrait être

python3 demo.py -i 1 -n 1234

Jusqu'à présent, un outil de ligne de commande réponse courte est générée. Je suis allé à dire à ce qu'il a fait.

Traiter les problèmes réels

Maintenant, nous avons besoin de trouver le nom d'utilisateur correspondant à mongo informations de connexion de l'utilisateur de base de données, et, finalement, générer des informations dans le format suivant:

不好意思人太多了,让您久等了,您的信息来了!
**************************************************
用户名:lisa
密码: 1234qwer
登录网站: http://www.xxxx.com
**************************************************️
目前密码唯一的不要修改哦!
该条消息不用回复了,谢谢。

J'étais un début, puis en ajoutant un fichier de configuration dans le script python sous forme de profils modifier le nom d'utilisateur, mais cette approche n'est pas flexible, chaque besoin de temps pour exécuter du code Python re. Ou nous pouvons utiliser pour construire un service RESTful api fastapi, mais je suis trop paresseux pour prendre le service. Enfin, j'ai choisi d'utiliser la ligne de commande pour exécuter le formulaire. Le module est utilisé aujourd'hui dit que ce cliquez sur le module.
Ensuite , écrire un code est nécessaire:

@click.command()
@click.option('-u', '--user_name', type=str, help='search user_name')
def main(user_name):
    click.echo(f'search user:{user_name}')
    result = m.get_user_info(user_name) #数据库查询
    try:
        info = f"不好意思人太多了,让您久等了,您的信息来了!\n{'*' * 50}\n用户名: {result.get('user_name')}\n" \
            f"密码: {result.get('user_pwd')}\n登录网站: {result.get('url')}\n{'*' * 50}️\n目前密码唯一的不要修改哦!\n该条消息不用回复了,谢谢。"
    except Exception as e:
        info = "Not Found"
    click.echo(info)


if __name__ == '__main__':
    main()

Nous pouvons être interrogé par le code ci-dessus sous la forme de la ligne de commande.

python3 demo.py -u 1234

Très pratique.
Si cette fois -ci , je dois ajouter les fonctions utilisateur temporaires, vous devez écrire une fonction, et
puis comment nous pouvons contrôler le fonctionnement des deux fonctions de la ligne de commande il? Cela va dire groupe suivant.

Créer une forme de groupe

Créer un groupe appelé, l'entrée principale se fait par une fonction, par rapport à d' autres fonctions, et d' autres fonctions peuvent être utilisées directement comme nom de la commande.
Eh bien, tout d' abord créer une fonction d'entrée principale

@click.group()
def main():
   pass

Cette fois -ci, nous avons remarqué que les principales modifications apportées au décorateur ci - dessus @click.group().
Grâce à elle , nous sommes prêts à créer un groupe de ligne de commande. Ensuite, nous avons commencé à créer des membres du groupe, les membres du groupe est une fonction que l' on appelle.

@main.command()
@click.option('-u', '--user_name', type=str, help='add user_name')
def get_user(user_name):
     click.echo(f'search user:{user_name}')

Le rôle des membres du groupe et son nom est la même fonction que les requêtes d' informations utilisateur.
Il convient de noter que les membres du groupe des décorateurs d' origine
@click.commanddevient un @main.command.
principal est le principal nom de la méthode ci - dessus. Ensuite , en suivant la même option est de déclarer certains paramètres.
Ensuite , nous créons un deuxième membre du groupe, d'ajouter des informations utilisateur.

@main.command()
@click.option('-u', '--user_name', required=True, type=str, help="要添加的用户名")
@click.option('-p', '--password', required=True, type=str, help="要添加的密码")
@click.option('-t', '--id_type', required=True, default="phone", type=str, help="添加的账户类型",show_default=True)
def add_user(user_name, password, id_type):
     #do something.....
     click.echo(f"{user_name=}  {password=} {id_type=}")

D' abord, en @main.command()ajoutant au groupe. Ensuite , est la possibilité d'ajouter une série de paramètres de fonctionnement. Les paramètres spécifiques desdites informations non mentionnées ci - dessus ici. Eh bien, nous avons créé deux membres,
si vous avez besoin d' autres fonctions, telles que l' utilisateur suppression, vous pouvez continuer à ajouter une fonction delete_user, et ainsi de suite.

Maintenant, je dis, comment effectuer sous les deux fonctions membres ci-dessus.

D'abord, regardez sous la commande d'aide, sont généralement ce que ne savent pas qu'il existe une application en ligne de commande quand ce que je prescris des paramètres que nous pouvons l'utiliser.

python3 demo.py --help

La sortie suivante

Usage: demo.py [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  add-user
  get-user

Commandes commande qui est d'appeler une fonction de nos membres, nous aurons besoin de regarder la fonction d' origine « _ » à un « -. »
Ensuite , nous pouvons appeler la méthode de requête

python3 demo.py get-user -u 123

Ensuite, nous pouvons obtenir le résultat

search user:123

Le même appel de méthode pour ajouter des informations utilisateur.

python3 demo.py add-user -u 123 -p "1234qwer"

Parce que -tpasser pas nécessairement les paramètres afin que nous puissions ignorer, utiliser la valeur par défaut de « téléphone ».
Eh bien, cela est contente de dire aujourd'hui, assez essentiellement pour les opérations quotidiennes.

amis Plus de contenu, intéressés peuvent se référer à la documentation officielle.

Je suppose que tu aimes

Origine www.cnblogs.com/c-x-a/p/12461646.html
conseillé
Classement