С тех пор, как я начал изучать Python, я был поражен тем, как сильно вы можете с ним делать, и насколько легко это на самом деле, когда вам это чувствует себя комфортно. Я всегда любил работать над терминалом, поэтому, чтобы сделать мое обучение немного забавным, я научился делать приложения CLI с Нажмите и сделал приложение Chuck Norris Jokes в конце прошлого года:
Норрис-Кли
Кельвин Вангоня ・ 27 декабря ’18 ・ 1 мин прочитал
Я разместил приложение на Pypi И как новичок в Python, вы можете просто представить мою радость от чего -то увидеть Я сделал на PYPI. Пипи! 😄 Потрясающее чувство.
Затем вчера мне пришлось отдохнуть от работы и решил открыть Dev.to. Мне нравится, когда мой браузер закрыт, если мне не нужно, чтобы он был для того, чтобы избежать отвлекающих факторов. Поэтому я переключил рабочие пространства, открыл свой браузер, нажал на Dev.tmark, и там я был. Идея только что встала в мою голову: я мог бы обойти все это, если бы у меня была одна команда, чтобы открыть Dev.to с терминала. Я уже был на своем терминале раньше В любом случае, это казалось хорошей идеей 😄. Конечно, это можно сделать для любого веб -сайта – я просто подумал о Dev.to, потому что это то, что заставило меня пройти процесс в первую очередь.
Откройте dev.to с вашего терминала 🎉
Кельвин Вангоня ・ 9 апреля ’19 ・ 1 мин читал
Как обычно, сообщество очень поддерживало!
Это было весело =) Вы должны добавить немного о процессе, о том, что вам нужно, чтобы это произошло и как сделать пакет для поделиться.
Я сделаю это в следующем посте. Спасибо! 😊
Итак, вот как я это сделал.
Если вы хотите следовать, сейчас самое время создать новый каталог, CD
в это и создайте свою виртуальную среду.
$ mkdir open-dev.to $ cd open-dev.to $ virtualenv venv # pip install virtualenv if you don't have it $ source venv/bin/activate (venv) $ mkdir app (venv) $ touch app/__init__.py # this is where we'll write our code (venv) $ touch requirements.txt # this will hold the project's requirements
Нажмите и модуль WebBrowser
В основе всего этого лежит эти две строки кода:
import click import webbrowser
Webbrowser
Предоставляет силы для открытия браузера и Нажмите
делает это приложением CLI.
Webbrowser
Поставляется с Python, поэтому все, что нам нужно установить, это Нажмите
Анкет
(venv) $ pip install click (venv) $ pip freeze > requirements.txt # add the installed module to our requirements file
Теперь, когда у нас есть то, что нам нужно, мы можем пойти дальше, чтобы написать код. Добавьте следующий код в app/__ init__.py
. Я объясню, что делает каждая строка.
import click import webbrowser @click.command() @click.option('--tag', '-t', help='add a tag') def main(tag): """ Open a new dev.to browser tab on the browser """ if tag: url = 'https://dev.to/t/{}'.format(tag) else: url = 'https://dev.to' webbrowser.open(url, new=2) if __name__ == "__main__": main()
Это действительно так просто! Даже новичок сможет понять, что делает этот код.
@click.command ()
Этот декоратор клика преобразует main ()
функционируйте в команду CLI. Без этого это была бы обычная функция Python. Но с этим это становится командой, которая может быть вызвана в качестве утилиты командной строки.
@click.option ('-Tag', '-t',)
@click.option ()
расширяет команду, чтобы иметь возможность принимать дополнительные аргументы. В этом случае --ярлык
или его сокращающая версия -t
позволено. Помощь
Текст объясняет, что делает аргумент.
def Main (Tag):
Это входная точка нашего приложения, где происходит вся волшебство. Функция (теперь команда) принимает необязательный тег
Аргумент, который определяет открытие URL, как видно в если еще
Несколько строк под ним.
“” Откройте новую вкладку Dev.to Browser в браузере “” “” “
webbrowser.open (url,)
Открывает запрошенный URL. Новый = 2
Убедитесь, что это сделано на новой вкладке.
И, наконец, Если __name__
Блок запускает main ()
Функция, когда сценарий работает.
Имея приведенный выше код, просто запустите __init__.py
чтобы увидеть, как это работает.
$ python app/__init__.py
Новая вкладка Dev.to должна автоматически открывать в вашем браузере.
$ python app/__init__.py --help Usage: __init__.py [OPTIONS] Open a new dev.to browser tab on the browser Options: -t, --tag TEXT add a tag --help Show this message and exit.
Давайте попробуем пройти в тег.
$ python app/__init__.py --tag react
https://dev.to/t/react
должен быть открыт 😀.
Мы не хотим продолжать работать Python App/__ init__.py
Каждый раз, хотя. В следующем посте я покажу, как использовать Setuptools
Чтобы связать сценарий, чтобы мы могли установить его локально и использовать простое dev.to
команда запустить скрипт вместо длинного Python App/__ init__.py
Анкет Я также покажу, как опубликовать пакет на PYPI.
Оригинал: “https://dev.to/wangonya/how-i-made-the-open-dev-to-cli-app-with-python-54p0”