Что такое flask в python
Перейти к содержимому

Что такое flask в python

  • автор:

Мега-Учебник Flask, Часть 1: «Привет, Мир!»

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

Моя предыстория
Приложение

Приложение, которое я собираюсь разрабатывать как часть этого руководства, является сервером микроблогов, и я решил назвать его microblog. Довольно креативно, я знаю.

Во время нашего прогресса я затрону следующие темы:

  • Управление пользователями, включая управление входами, сессиями, ролями пользователя, профилями и пользовательскими аватарами
  • Управление базой данных, включая миграцию
  • Поддержка форм, включая валидацию полей
  • Пагинация длинных списков элементов
  • Полнотекстовый поиск
  • E-mail уведомления пользователей
  • HTML шаблоны
  • Поддержка нескольких языков
  • Кеширование и другая оптимизация производительности
  • Методы отладки для серверов разработки и продакшна
  • Установка на продакшн сервер

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

Требования

Если ваш компьютер поддерживает Python 2.6/2.7, то все, вероятно, пойдет хорошо. Приложение из руководства должно нормально работать на Windows, OS X и Linux.

Это руководство подразумевает, что вы знакомы с окном терминала (командной консолью в случае Windows), и вы знаете основные команды для работы с файлами вашей ОС. Если это не так, то перед тем как продолжить, я рекомендую вам ознакомиться с тем, как создавать директории, копировать файлы и т.д., используя консоль.

Наконец, вы должны чувствовать себя свободно в написании кода на Python. Знакомство с модулями и пакетами этого языка также не помешает.

Установка Flask

Ну что ж, приступим!
Если у вас еще не установлен Python 2.7, то берем его отсюда.

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

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

Далее скачиваем virtualenv.py и кладем его внутрь новой папки.

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

Эта команда создаст полноценное окружение Python внутри папки flask

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

Прим. пер.: Перед тем как вы начнете вводить команды, хочу отметить, что в комментариях к девятой части отметится баг в flask-whooshalchemy, исправленную версию можнонужно скачать отсюда (репозиторий автора)

Если вы пользователь Linux, OS x или Cygwin, установите flask и расширения, вводя следующие команды одну за одной:

Эти команды скачают и установят все пакеты, которые мы будем использовать в нашем приложении.
Учтите, что мы собираемся использовать Flask 0.9, а не последнюю версию. Flask 0.10 не было довольно долго и некоторые расширения не готовы для работы с данной версией. Также есть несколько несовместимостей между пакетами и последней версией pip , которые решены использованием конкретных версий для установки.

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

Я не буду вдаваться в подробности, поэтому если вы хотите узнать больше, прочтите документацию к flask-mail.

Если установка всех пакетов прошла успешно, вы можете удалить virtualenv.py , поскольку файл нам больше не понадобится.

«Hello, World!» в Flask

Теперь у вас есть подпапка flask , в вашей папке microblog , содержащая интерпретатор Python и фреймворк Flask с расширениями, которые мы будем использовать в этом приложении. Настало время написать наше первое веб-приложение!

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

В папку app мы поместим само наше приложение. Подпапка static нужна для хранения статики, такой как картинки, javascript файлы и таблицы стилей. Подпапка templates , очевидно, предназначена для хранения наших шаблонов.

Давайте начнем с создания простого скрипта инициализации нашего пакета app (файл app/__init__.py )

Скрипт выше просто создает объект приложения (наследуя Flask ), затем импортирует модуль представлений, который мы еще не написали.

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

Напишем нашу первую функцию представления (файл app/views.py )

Это весьма простое представление, которое просто возвращает строку для отображения в пользовательском браузере. Два декоратора route создают привязку адресов / и /index к этой функции.

Последним шагом для получения полностью работающего веб-приложения будет создание скрипта, который стартует веб-сервер нашего приложения. Давайте назовем скрипт run.py и положим его в корневой каталог ( microblog/ ):

Скрипт просто импортирует переменную app из нашего пакета app и вызывает метод run для того, чтобы запустить сервер. Помните, что переменная app — экземпляр класса Flask , мы создали его выше.

Для запуска вашего приложения просто запустите скрипт. На OS X, Linux и Cygwin вам следует пометить файл исполняемым перед тем как вы сможете его запустить.

Тогда скрипт может быть вызван просто:

В Windows процесс немного отличается. Нет необходимости помечать файл исполняемым. Вместо этого вам нужно запустить скрипт как аргумент интерпретатора Python:

После старта сервер будет прослушивать порт 5000, ожидая соединений. Теперь откроем браузер и введем следующий URL в адресную строку:

Или же вы можете использовать эту ссылку:

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

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

И этим я хочу закончить первую часть этого руководства.

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

Обратите внимание, что вам нужно установить Flask, чтобы запустить приложение из архива выше.

Что дальше

В следующей части серии мы изменим наше маленькое приложение для использования HTML шаблонов.

Flask

Official Flask logo. Flask Artwork License.

Flask is considered more Pythonic than Django because Flask web application code is in most cases more explicit. Flask is easy to get started with as a beginner because there is little boilerplate code for getting a simple app up and running.

For example, here’s a valid «hello world» web application with Flask (the equivalent in Django would be significantly more code):

Flask was also written several years after Django and therefore learned from the Python community’s reactions as the framework evolved. Jökull Sólberg wrote a great piece articulating to this effect in his experience switching between Flask and Django.

Flask resources

If you’re looking for a fun tutorial with Flask and WebSockets, check out my blog post on creating Choose Your Own Adventure Presentations with Reveal.js, Python and WebSockets. Follow up that tutorial by building an admin interface in part 1, part 2 and part 3 that’ll show you how to use forms and SQLAlchemy. There is also a companion open source GitHub repository for the app with tags for each step in the blog posts.

This simple Flask app uses Twilio Voice to do voice calling with three participants. It’s a fun introduction to Python and Flask I wrote for the Twilio blog.

The Flask Extensions Registry is a curated list of the best packages that extend Flask. It’s the first location to look through when you’re wondering how to do something that’s not in the core framework.

Explore Flask is a public domain book that was previously backed on Kickstarter and cost money for about a year before being open sourced. The book explains best practices and patterns for building Flask apps.

How I Structure My Flask Application walks through how this developer organizes the components and architecture for his Flask applications.

Adding phone calling to your web application is a killer Flask tutorial with all the code needed to create a web app that can dial phones and receive inbound calls.

The Plank & Whittle blog has two posts, one on Packaging a Flask web app and another on Packaging a Flask app in a Debian package once you’ve built an app and want to deploy it.

The Tuts+ Flask tutorial is another great walkthrough for getting started with the framework.

Create Your Own Obnoxiously Simple Messaging App Just Like Yo is a silly walkthrough of very basic Flask web application that uses Nitrous.io to get started and Twilio for SMS.

The blog post series «Things which aren’t magic» covers how Flask’s ubiquitous @app.route decorator works under the covers. There are two parts in the series, part 1 and part 2.

Flask by Example: Part 1 shows the basic first steps for setting up a Flask project. Part 2 explains how to use PostgreSQL, SQLAlchemy and Alembic. Part 3 describes text processing with BeautifulSoup and NLTK. Part 4 shows how to build a task queue with Flask and Redis.

Branded MMS Coupon Generation with Python and Twilio is a Flask tutorial I wrote for building a web application that can send branded barcode coupons via MMS. The post goes through every step from a blank directory until you have a working app that you can deploy to Heroku.

How to Structure Large Flask Applications covers a subject that comes up quickly once you begin adding significant functionality to your Flask application.

Flask Blueprint templates shows a way of structuring your __init__.py file with blueprints for large projects.

Video streaming with Flask is another fantastic tutorial by Miguel Grinberg that covers video streaming.

One line of code cut our Flask page load times by 60% is an important note about optimizing Flask template cache size to dramatically increase performance in some cases.

Unit Testing Your Twilio App Using Python’s Flask and Nose covers integrating the Twilio API into a Flask application and how to test that functionality with nose.

The Flask documentation has some quick examples for how to deploy Flask with standalone WSGI containers.

Handling Email Confirmation in Flask is a great walkthrough for a common use case of ensuring an email address matches with the user’s login information.

If you’re not sure why DEBUG should be set to False in a production deployment, be sure to read this article on how Patreon got hacked.

Open source Flask example projects

Choose Your Own Adventure Presentations combines Flask with Reveal.js and text messages to create presentations where the audience can vote on how the story should proceed. The code is all open source under an MIT license and also uses the Flask-SocketIO and Flask-WTF projects to support voting and form input.

Skylines is an open source flight tracking web application built with Flask. You can check out a running version of the application.

Microblog is the companion open source project that goes along with Miguel Grinberg’s O’Reilly Flask book.

Flaskr TDD takes the official Flask tutorial and adds test driven development and JQuery to the project.

Bean Counter is an open source Flask app for tracking coffee.

FlaskBB is a Flask app for a discussion forum.

psdash is an app built with Flask and psutils to display information about the computer it is running on.

Flask project templates

Use the Flask App Engine Template for getting set up on Google App Engine with Flask.

Flask Foundation is a starting point for new Flask projects. There’s also a companion website for the project that explains what extensions the base project includes.

Cookiecutter Flask is a project template for use with Cookiecutter.

Flask-Boilerplate provides another starting project with sign up, log in and password reset.

Flask framework learning checklist

Install Flask on your local development machine.

Work through the 18-part Flask tutorial listed first under «Flask resources» above.

Read through Flask Extensions Registry to find out what extensions you’ll need to build your project.

Start coding your Flask app based on what you learned from the 18 part Flask tutorial plus open source example applications found below.

Move on to the deployment section to get your initial Flask project on the web.

Flask for newbies

Antony Christopher

Web Application Framework represents a collection of libraries and modules that enables a web application developer to write applications without having to bother about low-level details such as protocols, thread management etc.

Using the web framework, we can develop dynamic websites, web services and web applications. For each web framework having their own standard for development and deployment in server. In today’s world, there is a lot of web framework plays a vital role. We going to cover this section on Flask. Generally the introduction of Flask for newbies.

What is web API?

The API stands for Application Programming Interface. Then ‘Web API’ terms application programming interface across the web.

To make it detail explanation How the web API works?

Consider the big giant retail industry having its own ERP site. They have developed new API to discover the latest product demand/sales forecasting / predict the overall sale of the product for the current year. The industry needs to implement the API for ERP site across its franchise. The next thing will be grasped in your mind, Yes we can integrate the application code along with API. How far the application scalability is usable? How far cost-effectiveness occurred on this?

This all coming into the factor over here. If we create as web-API just one call and receive the response in JSON, XML or anything sufficient for the receiver side to process the response. This API can be shared with N number of application deployed. Each of the application is distinct in their functionality and deployed in different server. As per resource usability, only one server will be needed here. the cost-effectiveness reduced.

Let start rolling Flask…

Let start creating a simple python project using Flask in pyCharm as below.

Installing Flask

Try the command as ‘pip install flask’ in the terminal window as below.

An alternative way of installing flask can be done in Anaconda prompt. Here trying the same command as ‘pip install flask’.

Is it necessary to have multiple environments for Python?

Yes, Indeed. We are in a position to have multiple environments in our projects. Let’s take a real-time scenario. Consider the project_1 supports the python version 2.7. The project_2 supports the python version 3.7. In both projects, the version get varies. If we do specify the environment based on the projects as below,

  • project_1 — — python_env_2.7
  • project_2 — — python_env_3.7

let’s start how to create the environment.

Open the Anaconda prompt, point the directory to the project folder.

The below syntax used to create our own custom environment. The <<version>> illustrates under what python version needs to be configured in the project.

conda create -n <<environmentName>> python==<<version>>

As we discussed earlier an example of having two Python project the two environments needs to be created as follows,

conda create -n project_1_2.7 python==2.7

conda create -n project_2_3.7 python==3.7

Finally, after this environment is been created. Further need to activate the environment in the project structure. Where it actually resides.

Activate the environment

Command used to activate the environment ‘conda activate <<environmentName>>’. After executing this command you can see the Python environment changed from the base version to the newly activated environment name as follows.

Deactivate the environment

To deactivate try the command as ‘conda deactivate’ as follows. Once the deactivated is done the active environment changed to base version as follows.

Configure the active environment in Python project

Navigate the File->Settings and choose the Python Interpreter in the project name (say flask_helloworld). To the right, you can see the settings icon and click Add.

After that choose the interpreter for the existing environment as where actually the new environment is created.

To verify the applied python interpreter in Terminal windows as follows,

Great! Now that everything is installed you can create your first Flask App.

Use the line below to import Flask in Python.

Create app, that hosts the application

Then you need a route that calls a Python function. A route maps what you type in the browser (the url) to a Python function.

Something you should know is that Python assigns the name "__main__" to the script when the script is executed. If the script is imported from another script, the script keeps it given name (e.g. hello.py). In our case, we are executing the script. Therefore, __name__ will be equal to "__main__" . That means the if the conditional statement is satisfied and the app.run() method will be executed. This technique allows the programmer to have control over the script’s behaviour.

Almost done, the server needs to be started. This starts the web app at port 81.

Enter the URL http://localhost:81/ in your web browser.

Constructing the requirement file

we can generate a requirement.txt file that illustrates what are the prerequisites libraries required for the project.

Generally, if the project needs to move in another server/ from test to production. We need libraries to be copied over there. In python not necessary to copy because the requirements.txt will tend to install the libraries in the new system /server. Let’ see how we can achieve it.

The command used here is pip freeze > requirement.txt

Finally, you can verify the project workspace where the requirement.txt file is created as below.

Installing the libraries via requirement.txt

We created a requirement.txt file which holds the list of libraries associated with the project. The same project is moved to another server. By providing the command in terminal as ‘pip install -r reuquirements.txt’. The command intends to install libraries which supported in the python project.

Last one! To see the list of the environment created across the Python project. This can be implemented easily using the command ‘conda env list

Hope you all learned basics about the environment setup and basic Flask application.

Что такое Flask и как на нем быстро написать простой сайт

Что такое Flask и как на нем быстро написать простой сайт главное изображение

Рассказываем про один из самых популярных и лаконичных микрофреймворков для Python — Flask. Как написать простое приложение, подключить к нему Bootstrap и базу данных, и есть ли вообще у Flask минусы.

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

Первая публичная версия Flask вышла 16 апреля 2010 года. Автор проекта — Армин Ронахер, который возглавлял команду энтузиастов в Python-разработке Poocco. Flask основан на быстром и расширяемом механизме шаблонов Jinja и наборе инструментов Werkzeug. Кроме того, Flask использует одну из самых передовых служебных библиотек WSGI (Web Server Gateway Interface — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером).

При этом WSGI тоже разработал Армин Ронахер. По его словам, идея Flask изначально была первоапрельской шуткой, которая стала популярной и превратилась в серьезное приложение.

Изучите Python на Хекслете Пройдите нашу профессию «Python-разработчик», чтобы поменять свою жизнь и стать бэкенд-программистом.

Плюсы и минусы Flask

Практически все плюсы и минусы Flask появились именно из-за того, что он является микрофреймворком.

  • Простота. Flask легко установить и настроить.
  • Гибкость. Микрофреймворк позволяет разработчикам самостоятельно выбирать технологии и инструменты, которые они хотят применять в своих проектах
  • Расширяемость. Flask позволяет расширять функциональность с помощью плагинов и модулей, которые можно легко интегрировать в проект.
  • Активное сообщество. Flask является одним из самых используемых фреймворков для Python, поэтому имеет большое комьюнити разработчиков.

При этом у Flask есть и свои недостатки:

  • Отсутствие готовых решений. Разработчики изначально могут использовать во Flask только минимальный набор функциональности. Если же программисту нужны более широкие возможности, такие как аутентификация пользователя, ему придется добавить дополнительные библиотеки или реализовать это самостоятельно.
  • Нет встроенной многопоточности. Flask был разработан как однопоточный фреймворк. И чтобы управлять многопоточными веб-приложениями, придется установить дополнительные библиотеки.
  • Ограниченные возможности для масштабирования. Если проект начинает расти и усложняться, то могут появиться сложности в поддержке нужной функциональности.

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

Как создать проект на Flask

Для начала работы с микрофреймворком нужно скачать последнюю версию Flask:

pip install Flask

Для примера мы напишем на Flask тестовое веб-приложение с минимальным функционалом. Как работают приложения такого типа:

  • Пользователь вводит в браузере url, например — hexlet.io. В нашем тестовом приложении пользователь не будет вводить url, потому что мы будем работать с локальным сервером по адресу http://127.0.0.1:5000 .
  • Браузер получает у DNS IP-адрес нужного нам сервера. DNS — это Domain Name System, распределенная системе серверов. Она работает как общая «контактная книга» в интернете.
  • Браузер отправляет запрос по этому адресу и получает ответ. Как правило — в виде HTML-страницы.
  • Браузер отображает содержимое страницы.

Итак, создадим файл hello.py и запишем в него следующий код:

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

Первой строкой мы импортируем класс Flask . После этого мы создаем объект этого класса, передав первым аргументом имя модуля, — это и будет наше приложение для общения с веб-cервером. __name__ — это удобный способ передать именно то приложение, из которого запущен Flask.

Декоратор route() сообщает Flask, при обращении к какому URL-адресу запустится декорируемая разработчиком функция — в нашем примере это index . Последней строчкой мы открываем локальный веб-сервер с параметром debug=True — это позволит следить за всеми ошибками в логе программы.

Читайте также: Программирование на Python: особенности обучения, перспективы, ситуация на рынке труда

Запускаем веб-приложение через терминал:

Если мы все сделали правильно, то в терминале появятся эти сообщения:

Сообщение в терминале об удачном запуске приложения

В основном тут отображается служебная информация. Единственное, что нас интересует — сообщение, что наш локальный сервер запущен по адресу http://127.0.0.1:5000/ . В нем красными буквами указывается, что локальный сервер не подходит для продакшена. Но, так как мы реализовали тестовое приложение, то не будем деплоить его на реальный сервер.

Вернемся к коду. С помощью переменной части маршрута Flask может передавать в функцию аргументы.

В нашем примере значения просто появятся в браузере как часть строки. На стартовой странице нашего сайта будет запускаться функция index() . В ней пользователю, помимо приветствия, будет предлагаться нажать на ссылку, при клике на которую он перейдет на user/Аникин/Георгий . Этот URL-маршрут будет обрабатываться уже функцией get_user .

Функция get_user декорируется @app.route('/<surname>/<name>’) , а в адресной строке у нас /user/Аникин/Георгий . То есть наша функция получает аргументы из URL-адреса, эти значения лежат между косых скобок. По умолчанию тип таких значений string принимает любой текст без косой черты. Но переменные маршрутов могут быть и иных типов: int , float , path и других. Типы указываются в формате <тип:имя переменной> .

Структура приложения на Flask

Создадим подкаталог flask_app с такой структурой файлов и папок:

Структура файлов в проекте

Чтобы написать приложение сложнее одной строки, в директории проекта должны находиться папки static и templates . Директория static содержит ресурсы, которые используются шаблонами. В том числе включая файлы CSS, JavaScript и картинки. Папка templates содержит только шаблоны с расширением *.html .

Заполним наши файлы кодом. Сначала — наш основной файл проекта app.py :

После этого — index.html :

И файл about.html :

Для отображения HTML-шаблонов мы используем функцию render_template() . В нашем коде она принимает только имя шаблона и возвращает строку с результатом рендеринга шаблона.

Однако render_template() может принимать неограниченное количество именованных аргументов, которые можно использовать в этом шаблоне. Это позволит решить проблему нашего тестового проекта — сейчас у нас две функции, две страницы, и очень много дублированного кода.

Напишем базовый шаблон base.html и пару его наследников. При этом блоки <% block smth %>… <% endblock %>— это части базового шаблона, которые можно заменить в наследнике. Переменные передаются по именам в конструкции << variable >> .

После появления файла с базовым HTML-шаблоном можем поправить наши остальные HTML-файлы:

Кроме того, нужно поправить и основной файл Flask-проекта app.py :

Подключаем Bootstrap

Bootstrap — это открытый и бесплатный набор инструментов для создания сайтов и веб-приложений.

В нашем проекте в папке templates у нас есть подкаталог bootstrap , а в нем файл base.html — это немного модифицированная заготовка сайта-документации Bootstrap-Flask:

В файлах index.html и about.html заменим строку наследования на:

Второй путь подключения Bootstrap к проекту на Flask — через CDN. Подробнее об этом можно почитать в документации фреймворка.

Читайте также: Как создатель Python Гвидо ван Россум устроился в Microsoft и теперь работает над развитием CPython

После подключения Bootstrap нужно будет немного поправить основной файл нашего проекта app.py :

Последним элементом нашего веб-приложения будет форма отправки. Для этого нужно немного модифицировать index.html :

Вообще, Bootstrap может добавить огромное количество элементов в приложение буквально в несколько кликов. Мы ограничились четырьмя — три поля и одна кнопка. Ключевой элемент здесь — это << super() >> .

Подключаем базу данных

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

Есть большое количество способов работы с SQL-запросами во Flask. Мы можем использовать, например, sqlite3 и чистый SQL, а можем — библиотеку sqlite3 для Python. Кроме того, можно обернуть чистые SQL-запросы в код, либо использовать Psycopg2 для работы с PostgresSQL в Python (мы рекомендуем делать именно так и вот почему). Для примера в этом тексте мы используем библиотеку Flask SQLAlchemy (расширение для Flask), которая предлагает технологию ORM для взаимодействия с БД.

Подключаем базу данных к нашему проекту через файл app.py :

В нашей БД появился класс Event c атрибутами, который наследуется от db.Model . Это позволяет с помощью SQLAlchemy создать таблицу event , а поля нашего класса сделать колонками этой таблицы. Кроме того, мы определили магический метод __str__ для строкового отображения экземпляров класса — это пригодится для отображения в HTML.

Для создания таблицы в блок if __name__ == ‘__main__’ мы добавили команду db.create_all() , а для обработки отправленной формы — метод add_event . Он работает с методом POST , который указывает Flask, что данные будут отправлены на сервер.

В методе POST мы считываем данные отправленной формы и создаем для каждой строки временную переменную. После этого мы создаем объект event класса Event , передаем наши временные переменные как именованные аргументы, добавляем event в БД и фиксируем изменения.

Нам осталось лишь немного поправить форму: в файле index.html в открывающем теге <form> добавим атрибуты action="<< url_for('add_event') >>" method="POST" . Теперь форма отправки по нажатию на кнопку «Записать» будет отправлять данные в базу данных.

Добавим страницу отображения наших записей в новый файл Events.html :

В файл app.py добавим view :

А в основном контейнере index.html добавим ссылку на эту страницу:

Наш тестовый проект на Flask готов! Его можно запустить на локальном сервере через команду python app.py (в некоторых случаях надо будет написать название директории перед названием файла app.py ).

Что еще почитать про Flask

Изучите Python на Хекслете Пройдите нашу профессию «Python-разработчик», чтобы поменять свою жизнь и стать бэкенд-программистом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *