Чем полезна колба


Колба: лечебные свойства и противопоказания, польза и вред

Колба – многолетнее луковичное растение, очень похожее на ландыш, но с характерным чесночным ароматом. Растение относится к роду луковые и имеет множество других народных названий: мышиный чеснок, медвежий лук, дикий чеснок и черемша.

Колба любит влажные почвы лесов, лугов и зон водоемов и произрастает по всей территории Европы, Кавказа, Украины и России, за исключением Урала и крайнего Севера.

Описание колбы и ее состав

Растение имеет удлиненную луковицу, толщина которой доходит до 1 см, и трехгранный стебель, достигающий 10-50 см в высоту. Продолговатые острые листья, в количестве двух штук, крепятся к стеблю узким черешком, вдвое превышающим по длине пластинку листа. Цветочки появляются с мая по июнь и представляют собой полушаровидный зонтик белого цвета. Плод образуется в июле – трехгранная коробочка, наполненная семенами черного цвета.

Самой полезной и лекарственной частью растения считаются свежие листья. В их состав входят:

  • эфирные масла,
  • каротин,
  • слизи,
  • воск,
  • клетчатка,
  • фитонциды,
  • лизоцин,
  • витамины: А, С (аскорбиновая кислота), В1 (тиамин), В2 (рибофлавин), В3 (ниацин), В6 (пиридоксин), В9 (фолиевая кислота),
  • микро- и макроэлементы: железо, кальций, бор, калий, йод, сера, марганец, фтор, медь, цинк, фтор, селен.

Черемша имеет низкую калорийность (36 ккал) и сбалансированный состав. Листья содержат жиры, белки, золу, углеводы, клетчатку, моно- и дисахариды, органические кислоты.

Полезные свойства колбы

Богатый химический состав дает возможность применять растение в лечении таких недугов:

  • Высокое содержание витаминов в составе обеспечивает организм всем необходимым комплексом в период весеннего гиповитаминоза. От авитаминоза также можно пить чай из корня ,копеечника,.
  • Фитонциды являются природными антибиотиками, выступающими против болезнетворных бактерий и снимающие воспаление, поэтому черемшу используют в лечении бронхитов, ангин, простуды, суставных болей и кожных заболеваний (фурункулов, лишаев, бородавок, гнойных ран). Фитонциды в составе колбы используют для борьбы с глистами и другими паразитами.
  • Большое количество витаминов группы B способствует положительному влиянию колбы на нервную систему: оказывает мягкое успокаивающее действие и укрепляет ее. Растение применяют при различных видах невралгии, при хроническом стрессе и сезонной депрессии.

  • Наличие витамина С обеспечивает укрепление иммунной системы и дает отличный результат в терапии простудных заболеваний.
  • Наличие клетчатки позволяет быстро насыщаться и выводить шлаки и токсины.
  • Черемша активирует работу ЖКТ и усиливает выделение желудочных соков и ферментов, что способствует улучшению переваривания и усвоения пищи. Это помогает избавиться от тяжести в животе, вздутия и дисбактериоза.
  • Полезна колба для работы сердца и сосудов: она усиливает кровообращение, улучшает работу сердца, снижает уровень холестерина и способствует укреплению стенок кровеносных сосудов. Снижает давление и предупреждает возникновение инсультов и инфарктов, защищает от образования тромбов.
  • Осветлить кожу лица, избавиться от пигментации и веснушек, очистить кожу и увлажнить поможет маска из листьев растения.

Применение в медицине

Полезные свойства черемши нашли свое применение в традиционной и народной медицине. Официальная медицина использует фармакологические препараты, в основу которых входит колба. Мазь Урзалин используют при незаживающих гнойных ранах, инфицированных ожогах, трофических язвах и пролежнях. Препарат Урзал (из луковиц растения) применяют в лечении трихомонадного кольпита.

В народной медицине спектр применения черемши более обширный. Ее применяют для лечения таких заболеваний:

  • При гипертонии применяют водочную настойку. Для ее приготовления залейте 100 грамм листьев черемши водкой (0,5 литра) и настаивайте в течение трех недель. Принимайте перед едой по 40 капель настойки три раза в день.

  • При простуде, воспалении мочевого пузыря и болезни почек готовят водный настой. Возьмите 10 свежих листочков колбы и мелко их порежьте. Залейте их водой, используя 1 стакан, и прокипятите 10 минут. Отвар перелейте в термос и настаивайте 12 часов. Принимайте по 1/3 стакана трижды в день.
  • Для лечения радикулита, артрита и ревматизма готовят мазь. Для этого пропустите листья через мясорубку и добавьте в кашицу немного любого растительного масла. Заворачивайте полученную смесь в марлю и прикладывайте к больным местам. Радикулит и суставные боли можно лечить компрессами из настоя ,колокольчика,.

  • Для лечения гастрита или различных простудных заболеваний используют отвар из луковиц. Возьмите три луковички растения и измельчите их в ступке. Отдельно закипятите 1,5 стакана воды и в кипящую воду выложите размятые в кашицу луковицы. Варите смесь на небольшом огне четверть часа, после чего настаивайте в течение получаса. Процеженный отвар пейте три раза в день, принимая за раз 50 мл.
  • Для лечения бронхитов, хронического тонзиллита и кашля используют винную настойку из черемши. Чтобы ее приготовить, вымойте и мелко порежьте 50 грамм листьев. Поместите их в эмалированную посуду и залейте белым вином в количестве 1 стакана. Поставьте емкость на огонь и доведите до кипения, после чего процедите отвар и добавьте ложку меда. Принимайте небольшими глотками в течение дня до наступления облегчения. При астме и сильном кашле поможет отвар семян ,конопли, в молоке.

  • При нарушении пищеварительных процессов поможет свежевыжатый сок колбы. Для его приготовления промойте листья и прокрутите их на мясорубке. При помощи марли отожмите сок и пейте его по столовой ложке перед едой. В день разрешено принимать не более 4 столовых ложек. Курс приема составляет 2 недели.
  • При воспалении в ротовой полости смешайте сок и спирт в равных частях, а затем одну столовую ложку смеси добавьте на стакан теплой воды. Таким раствором полоскайте рот несколько раз в день.
  • Для лечения гнойного отита сок колбы закапывают в слуховой проход дважды в день по 2 капли и закрывают ухо ваткой.

Противопоказания

Противопоказанием к употреблению черемши и применению народных лекарственных средств из нее является:

  • гепатит,
  • гастрит в острой стадии,
  • язва желудка или двенадцатиперстной кишки,
  • беременность,
  • период лактации,
  • аллергия на продукт,
  • индивидуальная непереносимость.

Польза колбы для организма велика и неоспорима, но превышать указанные дозировки препаратов нельзя, иначе она принесет вред: превышение дозировки чревато бессонницей, головокружениями, отеками, болями в желудке и диареей.

Заготовка и хранение

Для использования колбы в лечебных целях все части растения заготавливают в разное время. Листья срезают в апреле и мае, а луковицы выкапывают только после созревания семян.

Листья можно солить или мариновать, но лучшим способом хранения является замораживание. Также можно сушить листья, для этого их раскладывают в тени тонким слоем и периодически помешивают. При высушивании они теряют свой чесночный запах и часть полезных веществ. Высушенное сырье лучше хранить в картонной таре или полотняных мешках в сухом месте.

Я рассказала вам о полезных и лекарственных свойствах черемши. А как вы ее используете: употребляете ли в пищу или применяете в народных способах лечения? Поделитесь с нами своими рецептами применения и результатами использования.

Загрузка...

Quickstart - Документация Flask (1.1.x)

Хотите начать? Эта страница дает хорошее представление о Flask. Это предполагает, что у вас уже установлен Flask. Если вы этого не сделаете, перейдите к Раздел установки.

Минимальное приложение

Минимальное приложение Flask выглядит примерно так:

 из флакона импортного флакона app = Flask (__ имя__) @ app.route ('/') def hello_world (): верните "Hello, World!" 

Так что же делал этот код?

  1. Сначала мы импортировали Flask class.Пример этого class будет нашим приложением WSGI.

  2. Затем мы создаем экземпляр этого класса. Первый аргумент - это имя модуль или пакет приложения. Если вы используете один модуль (как в этом примере) следует использовать __name__ , потому что в зависимости от того, запущен как приложение или импортирован как модуль имя будет другим ( '__main__' по сравнению с фактическим именем импорта). Это нужно для того, чтобы Flask знает, где искать шаблоны, статические файлы и т. Д.Для большего информацию см. в документации Flask .

  3. Затем мы используем декоратор route () , чтобы сообщить Flask, какой URL должен вызвать нашу функцию.

  4. Функция получает имя, которое также используется для генерации URL-адресов для этого конкретной функции и возвращает сообщение, которое мы хотим отобразить в браузер пользователя.

Просто сохраните его как hello.py или что-то подобное. Не звони ваше приложение колба.py , потому что это будет конфликтовать с Flask сам.

Для запуска приложения вы можете использовать команду flask или переключатель python -m с Flask. Прежде чем вы сможете это сделать, вам нужно чтобы сообщить вашему терминалу, с каким приложением работать, экспортируя FLASK_APP переменная среды:

 $ экспорт FLASK_APP = hello.py $ flask run * Работает на http://127.0.0.1:5000/ 

Если вы работаете в Windows, синтаксис переменной среды зависит от командной строки. переводчик.В командной строке:

 C: \ path \ to \ app> установить FLASK_APP = hello.py 

И в PowerShell:

 PS C: \ путь \ к \ приложению> $ env: FLASK_APP = "hello.py" 

В качестве альтернативы вы можете использовать python -m flask :

 $ экспорт FLASK_APP = hello.py $ python -m запуск фляги * Работает на http://127.0.0.1:5000/ 

Это запускает очень простой встроенный сервер, который достаточно хорош для тестирования. но, вероятно, не то, что вы хотите использовать в производстве. Варианты развертывания см. Варианты развертывания.

Теперь перейдите на http://127.0.0.1:5000/, и вы должны увидеть свой привет мир приветствия.

Внешний видимый сервер

Если вы запустите сервер, вы заметите, что сервер доступен только со своего компьютера, а не с любого другого компьютера в сети. Это по умолчанию, потому что в режиме отладки пользователь приложения может выполнять произвольный код Python на вашем компьютере.

Если у вас отключен отладчик или вы доверяете пользователям в своей сети, вы можете сделать сервер общедоступным, просто добавив - хост = 0.0.0.0 в командную строку:

 $ flask run --host = 0.0.0.0 

Указывает вашей операционной системе прослушивать все общедоступные IP-адреса.

Что делать, если сервер не запускается

В случае отказа python -m flask или flask не существует, это может быть по нескольким причинам. Прежде всего вам нужно посмотреть сообщение об ошибке.

Старая версия Flask

Версии Flask до 0.11 используют разные способы запуска применение.Короче говоря, команды flask не существовало, и и python -m flask . В этом случае у вас есть два варианта: либо обновитесь до более новых версий Flask, либо посмотрите на сервер разработки docs, чтобы увидеть альтернативный метод запуска сервера.

Неверное имя импорта

Переменная среды FLASK_APP - это имя модуля для импорта в колба пробег . Если этот модуль назван неправильно, вы получите ошибка импорта при запуске (или если отладка включена при переходе к применение).Он сообщит вам, что он пытался импортировать и почему это не удалось.

Наиболее частая причина - опечатка или то, что вы фактически не создавали приложение объект.

Режим отладки

(Хотите просто регистрировать ошибки и трассировку стека? См. Ошибки приложения)

Сценарий flask хорош для запуска локального сервера разработки, но вам придется перезапускать его вручную после каждого изменения вашего кода. Это не очень хорошо, и Flask может работать лучше. Если включить отладку поддержка, сервер будет перезагружаться при изменении кода, а также предоставить вам полезный отладчик, если что-то пойдет не так.

Чтобы включить все функции разработки (включая режим отладки), вы можете экспортировать переменную среды FLASK_ENV и установите для нее значение разработка перед запуском сервера:

 $ экспорт FLASK_ENV = разработка $ flask run 

(В Windows вам нужно использовать set вместо export .)

Это выполняет следующие функции:

  1. активирует отладчик

  2. активирует автоперегрузчик

  3. он включает режим отладки в приложении Flask.

Вы также можете управлять режимом отладки отдельно от среды, экспорт FLASK_DEBUG = 1 .

Есть и другие параметры, которые описаны в документации по серверу разработки.

Внимание

Даже если интерактивный отладчик не работает в средах разветвления (что делает практически невозможным использование на производственных серверах), он по-прежнему позволяет выполнение произвольного кода. Это создает серьезную угрозу безопасности. и поэтому он никогда не должен использоваться на производственных машинах .

Скриншот отладчика в действии:

Более подробную информацию об использовании отладчика можно найти в Werkzeug документация.

Имеете в виду еще один отладчик? См. Работа с отладчиками.

Маршрутизация

Современные веб-приложения используют понятные URL-адреса, чтобы помочь пользователям. Пользователи больше вероятно, понравится страница и вернется, если на странице используется значимый URL, они могут запомнить и использовать для прямого посещения страницы.

Используйте декоратор route () для привязки функции к URL-адресу.

 @ app.route ('/') def index (): return 'Index Page' @ app.route ('/ привет') def привет (): return 'Hello, World' 

Вы можете больше! Вы можете сделать части URL-адреса динамическими и прикрепить несколько правила функции.

Правила переменных

Вы можете добавить переменные разделы в URL, пометив разделы с помощью <имя_переменной> . Затем ваша функция получает как аргумент ключевого слова. При желании вы можете использовать конвертер, чтобы указать тип аргумента вида <преобразователь: имя_переменной> .

 из markupsafe import escape @ app.route ('/ пользователь / <имя пользователя>') def show_user_profile (имя пользователя): # показать профиль этого пользователя return 'User% s'% escape (имя пользователя) @ app.route (
.Установка приложения

- Документация Flask (1.1.x)

Приложение Flask является экземпляром класса Flask . Все в приложении, включая конфигурацию и URL-адреса, будет зарегистрироваться в этом классе.

Самый простой способ создать приложение Flask - это создать глобальный экземпляр Flask прямо в верхней части вашего кода, например как «Привет, мир!» пример делал на предыдущей странице. Пока это простой и полезный в некоторых случаях, он может вызвать некоторые сложные проблемы, так как проект растет.

Вместо глобального создания экземпляра Flask вы создадите это внутри функции. Эта функция известна как приложение . завод . Любая конфигурация, регистрация и другие настройки потребности приложения будут выполняться внутри функции, затем приложение будет возвращен.

Фабрика приложений

Пора начинать кодировать! Создайте каталог flaskr и добавьте __init__.py файл. __init__.py выполняет двойную функцию: он будет содержат фабрику приложений, и он сообщает Python, что flaskr каталог следует рассматривать как пакет.

 импорт ОС из фляги импорт фляги def create_app (test_config = None): # создать и настроить приложение app = Flask (__ name__, instance_relative_config = True) app.config.from_mapping ( SECRET_KEY = 'разработчик', БАЗА ДАННЫХ = os.path.join (app.instance_path, 'flaskr.sqlite'), ) если test_config - Нет: # загружаем конфигурацию экземпляра, если он существует, когда не тестируем приложение.config.from_pyfile ('config.py', silent = True) еще: # загрузить тестовую конфигурацию, если она передана app.config.from_mapping (test_config) # убедитесь, что папка экземпляра существует пытаться: os.makedirs (app.instance_path) кроме OSError: проходить # простая страница с приветствием @ app.route ('/ привет') def привет (): верните "Hello, World!" вернуть приложение 

create_app - это функция фабрики приложений. Вы добавите к нему позже в руководстве, но он уже многое делает.

  1. app = Flask (__ name__, instance_relative_config = True) создает Экземпляр Flask .

    • __name__ - это имя текущего модуля Python. Приложение нужно знать, где он находится, чтобы проложить пути, и __name__ - удобный способ сказать это.

    • instance_relative_config = True сообщает приложению, что файлы конфигурации относятся к папка экземпляра.Папка экземпляра находится вне пакета flaskr и может содержать локальные данные, которые не должны передаваться в систему контроля версий, например секреты конфигурации и файл базы данных.

  2. app.config.from_mapping () набора некоторая конфигурация по умолчанию, которую будет использовать приложение:

    • SECRET_KEY используется Flask и расширениями для хранения данных сейф. Он установлен на 'dev' , чтобы обеспечить удобное значение во время разработки, но его следует переопределить случайным значение при развертывании.

    • DATABASE - это путь, по которому будет находиться файл базы данных SQLite. сохранено. Это под app.instance_path , который является путь, который Flask выбрал для папки экземпляра. Вы узнаете подробнее о базе данных в следующем разделе.

  3. app.config.from_pyfile () переопределяет конфигурация по умолчанию со значениями, взятыми из config.py файл в папке экземпляра, если он существует. Например, когда развертывания, это можно использовать для установки реального SECRET_KEY .

    • test_config также можно передать на завод, и он будет используется вместо конфигурации экземпляра. Это так тесты вы напишете позже в руководстве можно настроить независимо от настроенных вами ценностей развития.

  4. os.makedirs () гарантирует, что app.instance_path существует. Колба не создает папку экземпляра автоматически, но она должна быть создан, потому что ваш проект создаст файл базы данных SQLite там.

  5. @ app.route () создает простой маршрут, чтобы вы могли посмотрите, как работает приложение, прежде чем переходить к остальным руководство. Он создает соединение между URL-адресом / hello и функция, которая возвращает ответ, строку 'Hello, World!' дюйм Это дело.

Запустить приложение

Теперь вы можете запускать свое приложение с помощью команды flask . Из терминал, сообщите Flask, где найти ваше приложение, затем запустите его в режим разработки.Помните, вы все еще должны быть на верхнем уровне Каталог flask-tutorial , а не пакет flaskr .

Режим разработки показывает интерактивный отладчик всякий раз, когда страница вызывает исключение и перезапускает сервер всякий раз, когда вы вносите изменения в код. Вы можете оставить его включенным и просто перезагрузить страницу браузера, когда вы следуйте инструкциям.

Для Linux и Mac:

 $ экспорт FLASK_APP = flaskr $ export FLASK_ENV = разработка $ flask run 

Для Windows cmd используйте set вместо export :

> установить FLASK_APP = flaskr > установить FLASK_ENV = development > пробег колбы 

Для Windows PowerShell используйте $ env: вместо export :

.

Тестирование приложений Flask - Документация Flask (1.1.x)

Что-то непроверенное сломано.

Происхождение этой цитаты неизвестно, и хотя она не совсем верна, она тоже недалеко от истины. Непроверенные приложения затрудняют улучшить существующий код, а разработчики непроверенных приложений стремятся стать довольно параноиком. Если в приложении есть автоматизированные тесты, вы можете безопасно вносить изменения и мгновенно узнавать, если что-нибудь сломается.

Flask предоставляет возможность протестировать ваше приложение, открыв Werkzeug протестируйте Client и обработайте за вас локальные переменные контекста. Затем вы можете использовать это с вашим любимым тестовым решением.

В этой документации мы будем использовать пакет pytest в качестве основы рамки для наших тестов. Вы можете установить его с помощью pip , например:

Приложение

Во-первых, нам нужно приложение для тестирования; мы будем использовать приложение от Учебник. Если у вас еще нет этого приложения, получите исходный код из примеров.

Скелет для испытаний

Начнем с добавления каталога тестов в корень приложения. затем создайте файл Python для хранения наших тестов ( test_flaskr.py ). Когда мы отформатируйте имя файла как test _ *. py , оно будет автоматически обнаружено pytest.

Затем мы создаем прибор pytest под названием client () , который настраивает приложение для тестирования и инициализирует новую базу данных:

 импорт ОС импортировать временный файл импортировать pytest из flaskr импорт flaskr @pytest.приспособление def client (): db_fd, flaskr.app.config ['БАЗА ДАННЫХ'] = tempfile.mkstemp () flaskr.app.config ['ТЕСТИРОВАНИЕ'] = Верно с flaskr.app.test_client () в качестве клиента: с flaskr.app.app_context (): flaskr.init_db () уступить клиента os.close (db_fd) os.unlink (flaskr.app.config ['БАЗА ДАННЫХ']) 

Это клиентское устройство будет вызываться при каждом отдельном тесте. Это дает нам простой интерфейс к приложению, где мы можем запускать тестовые запросы к применение.Клиент также будет отслеживать файлы cookie для нас.

Во время настройки активируется флаг конфигурации ТЕСТИРОВАНИЕ . какой это отключает перехват ошибок во время обработки запроса, так что вы получите лучшие отчеты об ошибках при выполнении тестовых запросов к применение.

Поскольку SQLite3 основан на файловой системе, мы можем легко использовать tempfile модуль для создания временной базы данных и ее инициализации. Функция mkstemp () делает для нас две вещи: возвращает низкоуровневый дескриптор файла и случайное имя файла, последнее мы используем как имя базы данных.Нам просто нужно оставить db_fd , чтобы мы могли использовать функция os.close () , чтобы закрыть файл.

Чтобы удалить базу данных после теста, прибор закрывает файл и удаляет это из файловой системы.

Если мы теперь запустим набор тестов, мы должны увидеть следующий результат:

 $ pytest ================ запускается тестовая сессия ================ корневой каталог: ./flask/examples/flaskr, inifile: setup.cfg собрано 0 предметов =========== Нет тестов в 0.07 секунд ============ 

Несмотря на то, что он не проводил никаких реальных тестов, мы уже знаем, что наш flaskr синтаксически корректно, иначе импорт умер бы за исключением.

Первое испытание

А теперь пора приступить к тестированию функциональности приложения. Давайте проверим, что приложение показывает «Здесь пока нет записей», если мы получить доступ к корню приложения (/). Для этого добавляем новый тестовая функция до test_flaskr.py , вот так:

 def test_empty_db (клиент): "" "Начните с пустой базы данных." "" rv = client.get ('/') assert b'Нет записей здесь пока 'в rv.data 

Обратите внимание, что наши тестовые функции начинаются со слова test ; это позволяет pytest, чтобы автоматически идентифицировать функцию как запускаемый тест.

Используя client.get , мы можем отправить запрос HTTP GET на приложение с заданным путем. Возвращаемое значение будет response_class объект.Теперь мы можем использовать данные атрибут для проверки возвращаемое значение (в виде строки) из приложения. В этом случае мы гарантируем, что «Здесь пока нет записей» является частью вывода.

Запустите его еще раз, и вы увидите один успешный тест:

 $ pytest -v ================ запускается тестовая сессия ================ корневой каталог: ./flask/examples/flaskr, inifile: setup.cfg собрано 1 шт. tests / test_flaskr.py :: test_empty_db ПРОЙДЕН ============= 1 прошло за 0,10 секунды ============== 

Вход и выход

Большая часть функциональности нашего приложения доступна только для администратор, поэтому нам нужен способ входа и выхода нашего тестового клиента приложения.Для этого мы запускаем несколько запросов на вход и выход из системы. страницы с необходимыми данными формы (логином и паролем). И потому что страницы входа и выхода перенаправляются, мы сообщаем клиенту follow_redirects .

Добавьте в файл test_flaskr.py следующие две функции:

 def логин (клиент, логин, пароль): return client.post ('/ логин', data = dict ( username = имя пользователя, пароль = пароль ), follow_redirects = True) def выйти из системы (клиент): вернуть клиента.get ('/ logout', follow_redirects = True) 

Теперь мы можем легко проверить, что вход и выход работает и что он не работает с неверные учетные данные. Добавьте эту новую тестовую функцию:

.

Мега-учебник Flask, часть I: Hello, World!

Добро пожаловать! Вы собираетесь начать путешествие, чтобы узнать, как создавать веб-приложения с помощью Python и фреймворка Flask. Видео выше даст вам обзор содержания этого руководства. В этой первой главе вы узнаете, как настроить проект Flask. К концу этой главы у вас будет простое веб-приложение Flask, работающее на вашем компьютере!

Для справки, ниже приводится список статей из этой серии.

Примечание 1. Если вы ищете устаревшую версию этого руководства, она здесь.

Примечание 2: Если вы хотите поддержать мою работу над этим блогом или просто не терпите ждать еженедельных статей, я предлагаю полную версию этого руководства в виде электронной книги или набора видео. Для получения дополнительной информации посетите course.miguelgrinberg.com.

Все примеры кода, представленные в этом руководстве, размещены в репозитории GitHub. Загрузка кода с GitHub может сэкономить вам много времени на набор текста, но я настоятельно рекомендую вам набирать код самостоятельно, по крайней мере, для первых нескольких глав.После того, как вы познакомитесь с Flask и примером приложения, вы сможете получить доступ к коду непосредственно из GitHub, если набор текста станет слишком утомительным.

В начале каждой главы я дам вам три ссылки на GitHub, которые могут быть полезны при работе с главой. Ссылка Обзор откроет репозиторий GitHub для микроблога в том месте, где были добавлены изменения для главы, которую вы читаете, без включения каких-либо изменений, представленных в будущих главах. Zip Ссылка - это ссылка для загрузки zip-файла, включающего все приложение, включая изменения в главе. Ссылка Diff откроет графическое представление всех изменений, которые были сделаны в главе, которую вы собираетесь прочитать.

Ссылки GitHub для этой главы: Browse, Zip, Diff.

Установка Python

Если на вашем компьютере не установлен Python, установите его сейчас. Если ваша операционная система не предоставляет вам пакет Python, вы можете загрузить установщик с официального сайта Python.Если вы используете Microsoft Windows вместе с WSL или Cygwin, обратите внимание, что вы будете использовать не родную для Windows версию Python, а версию, удобную для Unix, которую вам необходимо получить из Ubuntu (если вы используете WSL) или из Cygwin.

Чтобы убедиться, что ваша установка Python работает, вы можете открыть окно терминала и набрать python3 или, если это не сработает, просто python . Вот что вам стоит ожидать:

  $ python3 Python 3.5.2 (по умолчанию, 17 ноября 2016 г., 17:05:23) [GCC 5.4.0 20160609] в Linux Для получения дополнительной информации введите «помощь», «авторские права», «кредиты» или «лицензия». >>> _  

Интерпретатор Python теперь ожидает интерактивного приглашения, в котором вы можете ввести операторы Python. В следующих главах вы узнаете, для чего полезна эта интерактивная подсказка. Но пока вы подтвердили, что Python установлен в вашей системе. Чтобы выйти из интерактивного приглашения, вы можете ввести exit () и нажать Enter. В версиях Python для Linux и Mac OS X вы также можете выйти из интерпретатора, нажав Ctrl-D.В Windows ярлык выхода - Ctrl-Z, за которым следует Enter.

Установка Flask

Следующим шагом является установка Flask, но прежде чем я перейду к этому, я хочу рассказать вам о лучших практиках, связанных с установкой пакетов Python .

В Python пакеты, такие как Flask, доступны в общедоступном репозитории, откуда любой может загрузить и установить их. Официальный репозиторий пакетов Python называется PyPI, что означает индекс пакетов Python (некоторые люди также называют этот репозиторий «магазином сыра»).Установить пакет из PyPI очень просто, потому что Python поставляется с инструментом под названием pip , который выполняет эту работу (в Python 2.7 pip не поставляется вместе с Python и должен быть установлен отдельно).

Чтобы установить пакет на свой компьютер, используйте pip следующим образом:

  $ pip install <имя-пакета>  

Интересно, что этот метод установки пакетов в большинстве случаев не работает. Если ваш интерпретатор Python был установлен глобально для всех пользователей вашего компьютера, скорее всего, ваша учетная запись обычного пользователя не будет иметь разрешения на внесение в нее изменений, поэтому единственный способ заставить указанную выше команду работать - запустить ее от администратора. учетная запись.Но даже без этого осложнения подумайте, что произойдет, когда вы установите пакет, как указано выше. Инструмент pip загрузит пакет из PyPI, а затем добавит его в вашу установку Python. С этого момента каждый скрипт Python, который есть в вашей системе, будет иметь доступ к этому пакету. Представьте себе ситуацию, когда вы завершили работу над веб-приложением, используя Flask версии 0.11, которая на момент запуска была самой последней версией Flask, но теперь ее заменила версия 0.12. Теперь вы хотите запустить второе приложение, для которого вы хотите использовать версию 0.12, но если вы замените версию 0.11, которую вы установили, вы рискуете сломать ваше старое приложение. Ты видишь проблему? Было бы идеально, если бы можно было установить Flask 0.11 для использования в вашем старом приложении, а также установить Flask 0.12 для нового.

Чтобы решить проблему поддержки разных версий пакетов для разных приложений, Python использует концепцию виртуальных сред .Виртуальная среда - это полная копия интерпретатора Python. Когда вы устанавливаете пакеты в виртуальной среде, общесистемный интерпретатор Python не затрагивается, только копия. Таким образом, решение для получения полной свободы установки любых версий ваших пакетов для каждого приложения состоит в использовании отдельной виртуальной среды для каждого приложения. Виртуальные среды имеют дополнительное преимущество, поскольку они принадлежат пользователю, который их создает, поэтому им не требуется учетная запись администратора.

Начнем с создания каталога, в котором будет жить проект.Я собираюсь называть этот каталог микроблог , так как это имя приложения:

  $ микроблог mkdir $ cd микроблог  

Если вы используете версию Python 3, в нее включена поддержка виртуальной среды, поэтому все, что вам нужно сделать для ее создания, это:

  $ python3 -m venv venv  

С помощью этой команды я прошу Python запустить пакет venv , который создает виртуальную среду с именем venv .Первый venv в команде - это имя пакета виртуальной среды Python, а второй - имя виртуальной среды, которую я собираюсь использовать для этой конкретной среды. Если вас это сбивает с толку, вы можете заменить второй venv другим именем, которое хотите присвоить своей виртуальной среде. Обычно я создаю свои виртуальные среды с именем venv в каталоге проекта, поэтому всякий раз, когда я cd в проекте, я нахожу соответствующую виртуальную среду.

Обратите внимание, что в некоторых операционных системах вам может потребоваться использовать python вместо python3 в приведенной выше команде. Некоторые установки используют python для выпусков Python 2.x и python3 для выпусков 3.x, в то время как другие сопоставляют python с выпусками 3.x.

После завершения команды у вас будет каталог с именем venv , где хранятся файлы виртуальной среды.

Если вы используете любую версию Python старше 3.4 (включая выпуск 2.7) виртуальные среды изначально не поддерживаются. Для этих версий Python вам необходимо загрузить и установить сторонний инструмент под названием virtualenv, прежде чем вы сможете создавать виртуальные среды. После установки virtualenv вы можете создать виртуальную среду с помощью следующей команды:

  $ virtualenv venv  

Независимо от метода, который вы использовали для его создания, ваша виртуальная среда должна быть создана. Теперь вам нужно сообщить системе, что вы хотите его использовать, и вы делаете это, активируя .Чтобы активировать новую виртуальную среду, используйте следующую команду:

  $ исходный venv / bin / активировать (venv) $ _  

Если вы используете окно командной строки Microsoft Windows, команда активации немного отличается:

  $ venv \ Scripts \ активировать (venv) $ _  

Когда вы активируете виртуальную среду, конфигурация сеанса терминала изменяется так, что интерпретатор Python, хранящийся внутри нее, вызывается при вводе python .Кроме того, приглашение терминала модифицируется и включает имя активированной виртуальной среды. Все изменения, внесенные в ваш сеанс терминала, являются временными и частными для этого сеанса, поэтому они не сохранятся, когда вы закроете окно терминала. Если вы работаете с несколькими открытыми окнами терминала одновременно, вполне нормально активировать в каждом из них разные виртуальные среды.

Теперь, когда у вас создана и активирована виртуальная среда, вы можете, наконец, установить в нее Flask:

  (venv) $ pip install колба  

Если вы хотите подтвердить, что в вашей виртуальной среде теперь установлен Flask, вы можете запустить интерпретатор Python и импортировать в него Flask:

  >>> импортная колба >>> _  

Если этот оператор не выдает ошибок, вы можете поздравить себя, так как Flask установлен и готов к использованию.

Приложение Flask "Hello, World"

Если вы зайдете на веб-сайт Flask, вас встретит очень простой пример приложения, в котором всего пять строк кода. Вместо того чтобы повторять этот тривиальный пример, я покажу вам более сложный, который даст вам хорошую базовую структуру для написания более крупных приложений.

Приложение будет существовать в пакете . В Python подкаталог, содержащий файл __init__.py , считается пакетом и может быть импортирован.Когда вы импортируете пакет, __init__.py выполняет и определяет, какие символы пакет предоставляет внешнему миру.

Давайте создадим пакет под названием app , в котором будет размещено приложение. Убедитесь, что вы находитесь в каталоге микроблога , а затем выполните следующую команду:

  (venv) приложение $ mkdir  

__init__.py для пакета app будет содержать следующий код:

приложение / __ init__.py : экземпляр приложения Flask

  из колбы импортной колбы app = Flask (__ имя__) из маршрутов импорта приложений  

Приведенный выше сценарий просто создает объект приложения как экземпляр класса Flask , импортированный из пакета flask. Переменная __name__ , переданная в класс Flask , представляет собой предопределенную переменную Python, для которой установлено имя модуля, в котором она используется. Flask использует местоположение переданного здесь модуля в качестве отправной точки, когда ему нужно загрузить связанные ресурсы, такие как файлы шаблонов, о которых я расскажу в главе 2.Для всех практических целей передача __name__ почти всегда приведет к правильной настройке Flask. Затем приложение импортирует модуль routes , который еще не существует.

Один аспект, который на первый взгляд может показаться запутанным, заключается в том, что есть две сущности с именем app . Пакет app определяется каталогом app и сценарием __init__.py и упоминается в заявлении from app import routes .Переменная app определена как экземпляр класса Flask в сценарии __init__.py , что делает его членом пакета app .

Другой особенностью является то, что модуль routes импортируется внизу, а не вверху скрипта, как это всегда делается. Нижний импорт - это обходной путь для циклического импорта , распространенной проблемы с приложениями Flask. Вы увидите, что модуль routes должен импортировать переменную app , определенную в этом скрипте, поэтому размещение одного из взаимных импортов внизу позволяет избежать ошибки, которая возникает из-за взаимных ссылок между этими двумя файлами.

Итак, что входит в модуль routes ? Маршруты - это разные URL-адреса, реализуемые приложением. Во Flask обработчики маршрутов приложения записываются как функции Python, называемые функциями просмотра . Функции просмотра сопоставляются с одним или несколькими URL-адресами маршрута, поэтому Flask знает, какую логику выполнять, когда клиент запрашивает данный URL-адрес.

Вот ваша первая функция просмотра, которую вам нужно написать в новом модуле с именем app / routes.py :

приложение / маршруты.py : домашняя страница route

  из приложения импорта приложений @ app.route ('/') @ app.route ('/ индекс') def index (): return "Hello, World!"  

Эта функция просмотра на самом деле довольно проста, она просто возвращает приветствие в виде строки. Две странные строки @ app.route над функцией - это декораторы , уникальная особенность языка Python. Декоратор изменяет функцию, которая следует за ним. Распространенный паттерн с декораторами - их использование для регистрации функций в качестве обратных вызовов для определенных событий.В этом случае декоратор @ app.route создает связь между URL-адресом, указанным в качестве аргумента, и функцией. В этом примере есть два декоратора, которые связывают URL-адреса / и / index с этой функцией. Это означает, что когда веб-браузер запрашивает любой из этих двух URL-адресов, Flask будет вызывать эту функцию и передавать ее возвращаемое значение обратно в браузер в качестве ответа. Если это еще не имеет полного смысла, это произойдет через некоторое время, когда вы запустите это приложение.

Для завершения приложения у вас должен быть сценарий Python на верхнем уровне, который определяет экземпляр приложения Flask. Назовем этот сценарий microblog.py и определим его как одну строку, которая импортирует экземпляр приложения:

microblog.py : Основной модуль приложения

  из приложения импорта приложений  

Помните две сущности app ? Здесь вы можете увидеть оба вместе в одном предложении. Экземпляр приложения Flask называется app и является членом пакета app .Оператор from app import app импортирует переменную app , которая является членом пакета app . Если это вас сбивает с толку, вы можете переименовать пакет или переменную в другое имя.

Чтобы убедиться, что вы все делаете правильно, ниже вы можете увидеть схему структуры проекта на данный момент:

  микроблог / Venv / приложение/ __init__.py routes.py microblog.py  

Вы не поверите, но эта первая версия приложения готова! Однако перед запуском Flask необходимо указать, как его импортировать, установив переменную среды FLASK_APP :

  (venv) $ export FLASK_APP = микроблог.ру  

Если вы используете Microsoft Windows, используйте set вместо export в приведенной выше команде.

Готовы ли вы быть потрясенными? Вы можете запустить свое первое веб-приложение с помощью следующей команды:

  (venv) $ пробег * Обслуживающее приложение Flask "микроблог" * Запуск на http://127.0.0.1:5000/ (нажмите CTRL + C, чтобы выйти)  

После инициализации сервер будет ждать клиентских подключений. Вывод flask run указывает, что сервер работает на IP-адресе 127.0.0.1, который всегда является адресом вашего компьютера. Этот адрес настолько распространен, что у него есть более простое имя, которое вы, возможно, видели раньше: localhost . Сетевые серверы прослушивают соединения на определенном номере порта. Приложения, развернутые на производственных веб-серверах, обычно прослушивают порт 443, а иногда и 80, если они не реализуют шифрование, но для доступа к этим портам требуются права администратора. Поскольку это приложение работает в среде разработки, Flask использует свободно доступный порт 5000.Теперь откройте свой веб-браузер и введите следующий URL-адрес в поле адреса:

  http: // localhost: 5000 /  

В качестве альтернативы вы можете использовать другой URL:

  http: // localhost: 5000 / индекс  

Вы видите отображение маршрутов приложения в действии? Первый URL соответствует /, а второй соответствует / index . Оба маршрута связаны с единственной функцией просмотра в приложении, поэтому они производят один и тот же вывод, который представляет собой строку, которую возвращает функция.Если вы введете любой другой URL-адрес, вы получите сообщение об ошибке, поскольку только эти два URL-адреса распознаются приложением.

Когда вы закончите играть с сервером, вы можете просто нажать Ctrl-C, чтобы остановить его.

Поздравляем, вы сделали первый большой шаг к тому, чтобы стать веб-разработчиком!

Прежде чем закончить эту главу, я хочу упомянуть еще одну вещь. Поскольку переменные среды не запоминаются во время сеансов терминала, вам может показаться утомительным всегда устанавливать переменную среды FLASK_APP при открытии нового окна терминала.Начиная с версии 1.0, Flask позволяет вам регистрировать переменные среды, которые вы хотите автоматически импортировать при запуске команды flask . Чтобы использовать эту опцию, вам необходимо установить пакет python-dotenv :

  (venv) $ pip install python-dotenv  

Затем вы можете просто записать имя и значение переменной среды в файл .flaskenv в каталоге верхнего уровня проекта:

.flaskenv : переменные среды для команды flask

  FLASK_APP = микроблог.ру  

Это необязательно. Если вы предпочитаете устанавливать переменную среды вручную, это нормально, если вы всегда не забываете это делать.

.

Смотрите также