Flask is a small and powerful web development framework for Python. It is called a micro-framework as it aims to keep the core simple but extensible. Even though it’s called a micro-framework, it is no way lacking in functionality, and allows you to develop applications very quickly, primarily through the development of a small codebase.
This course will take you deep into the world of using Flask and its ecosystem of extensions to create web applications. We’ll walk through creating a simple IMDB clone from scratch. We’ll start by creating the boilerplate code and use Virtualenv to create an isolated development environment. You’ll then learn to work with the database using SQLAlchemy. After that, we’ll display our data to the end user using WTForms.
We’ll restructure and modularize our code using Blueprints. Our site will be secured using the extensions Flask-Login and Flask-Principal. After that, we’ll create a RESTful API of our app. We’ll then give admin functionality and extend our app using various flask extensions. We’ll incorporate Celery to make our tasks asynchronous. We’ll walk you through performing unit test of our app, and then test our SQLAlchemy models. We’ll also test the URLs and finally, we’ll test how much of our code isn’t being tested. All these tests will make our app secure. Finally, we’ll deploy our Flask app to various options that are available.
This course will give you an in-depth understanding of how to use Flask and its strong extensibility for more complex web applications.
About The Author
Alexander Putilin is a professional programmer and has several years of experience in languages such as Python and C++. He has worked for a lot of years in Yandex, a Russian multinational technology company specializing in Internet-related services and products. He worked in the Search Engine department on various parts of Yandex's search engine.
When he released his Flask examples with the recommended best practices on GitHub, it became one of the most popular Flask repositories on the site. Jack has also worked as a reviewer for Flask Framework Cookbook, Packt Publishing.
The viewer needs to have a clear picture of where this course is going to take them.
The course assumes an understanding and familiarity of Flask's API, but we still need a basic application to build off.
Python libraries are installed globally, so we need a way to isolate our project's libraries so that they do not conflict with each other.
We have a universal connection. But now we need to create an API to make the queries.
We have a universal connection and have set up a universal query interface. Let's start reading data.
Data is rarely isolated. We need a way to match the records of relationship A to the records of relationship B in such a way that a record in relationship A can link to multiple records in relationship B, but a record in B is linked to only one record in A.
We need a way to match relationship A and relationship B in such a way that a record in relationship A can link to multiple records in relationship B and vice versa.
How can SQLAlchemy represent the more complex queries that can be created in SQL?
Jinja provides an easy way to replace values in an HTML document, but to structure dynamic pages, our Jinja templates need control logic.
Creating secure forms that cover all of the validation issues in web forms involves a lot of boilerplate code.
Our site is fully functional, but we can't have any user-added content, such as comments, without a user system.
In this video, we're going to cover how to handle encrypted passwords.
In this video, we're going to make our new login system accessible to users from the frontend.
In this video, we are going to add functionality to our app that allows us define where each user can and cannot go.
Our app needs a way for maintainers of the site to edit and administer the site from the Web. We will provide this functionality with Flask Admin.
The only way to create new data in the database currently is to use the shell interface. We need an administrator interface to add data from the Web.
Currently, in all the places where movie posters or actor pictures should be, there are placeholder images. Let's fix that with Flask Admin.
When developing the app, we don't have a way of viewing the internals of Flask without a lot of print statements.
Currently, our app renders a template every time a page is loaded, even though the data on the page doesn't change that often.
One easy way to speed up page load times is to concatenate our CSS and JS files in one file each. But this process can be tedious to do manually.
Some functions or features in our application are too slow to run in the same process as our Flask server.
Now that Celery is set up, we need to understand how to send it commands.
Now that we understand how Celery works and how to give it a task, we will apply this knowledge for something practical.
Our application has a lot of code in it now; we need to make sure that our code isn't buggy without manually testing every change.
Now that we understand how unit tests work, let's build some tests for our SQLAlchemy models.
We now understand how to use the unittest library; next, we need to understand Python's test client.
Now that we are testing a lot of our application, we need a way to easily know what parts of our application are not being tested.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.