2021-07-14T12:01:19Z
Flask Mega-Tutorial Update: Flask 2.0 and more!
I'm excited to share that I've completed a revision of the Flask Mega-Tutorial to keep it in line with new releases of Flask, Python and third-party dependencies.

To celebrate this update, you can purchase the paid version of this course with a $10 USD discount (this offer is valid through the rest of July 2021). If you are interested in this offer, use the FLASK2
promotional code at checkout, or click here to go directly to the order page with the coupon added. Thank you!
What's in this Update?
While I've made changes in every chapter, below is a list of some of the most interesting updates:
- Tested to work well with the new Flask 2 release (as well as remaining compatible with Flask 1.x releases)
- Tested to work well with the 3.6, 3.7, 3.8 and 3.9 releases of Python.
- All dependencies upgraded to their latest official versions.
- The updated code has been pushed to the GitHub repository.
- The
FLASK_DEBUG
environment variable was replaced with the more modernFLASK_ENV
. - The importance of the .flaskenv file is more clearly stated.
- Recommend SendGrid as an alternative email service with a decent free email sending quota.
- Fixed backwards incompatible changes in the
pyjwt
package. - Switched to the
langdetect
package for language detection. - Upgraded Ubuntu to 20.04 in Linux deployment chapter.
- Addressed issues with Heroku's Postgres database and SQLAlchemy 1.4.
- Solved issues with recent releases of the pymysql package requiring the
cryptography
package to be installed as well.
There is one aspect of the tutorial that is still in need of an update: the use of the Flask-Bootstrap extension. Unfortunately this extension has not been updated in a long time, and it continues to require version 3 of the Bootstrap CSS framework, which is now two major releases old. While there are a few forks of Flask-Bootstrap that implemented support for Bootstrap 4, there are currently none that I know of that support Bootstrap 5. Out of the Bootstrap 4 forks, most are already unmaintained, or else they don't have a clear path to Bootstrap 5. Given that there are no worthy successors to Flask-Bootstrap, I have decided to continue using this old version, which continues to work well, with the caveat that it keeps the user interface stuck on Bootstrap 3. I will continue to monitor this and update the Bootstrap chapter when a good alternative to Flask-Bootstrap appears.
How to Get this Update
The update to the tutorial is available right now on this blog. This continues to be freely available to everyone.
If you have purchased the paid version from my Courses page, first of all thank you so much for your support, and second, you can find the updated ebook downloads and text of the tutorial in your course page. Note that most of the updates are minor in nature, so at this time I have not made updates to the video material.
#1 Ken Hommel said 2021-07-16T05:09:01Z
#2 Varoon said 2021-07-16T09:10:46Z
#3 Miguel Grinberg said 2021-07-16T11:07:04Z
#4 Alex Zh said 2021-07-20T13:24:56Z
#5 Miguel Grinberg said 2021-07-20T15:48:20Z
#6 G said 2021-07-23T17:39:15Z
#7 Miguel Grinberg said 2021-07-23T22:10:08Z
#8 T said 2021-07-28T02:05:30Z
#9 Shahrukh said 2021-07-28T10:30:26Z
#10 Miguel Grinberg said 2021-07-28T11:07:38Z
#11 Miguel Grinberg said 2021-07-28T11:11:59Z
#12 Rogerio said 2021-07-30T21:57:31Z
#13 Alex said 2021-08-02T00:44:52Z
#14 Miguel Grinberg said 2021-08-02T10:14:02Z
#15 Murat said 2021-08-02T23:07:04Z
#16 Andrey said 2021-08-31T16:06:51Z
#17 Miguel Grinberg said 2021-08-31T18:39:22Z
#18 Gavin said 2021-09-01T20:36:30Z
#19 Miguel Grinberg said 2021-09-02T08:51:56Z
#20 Gavin said 2021-09-04T05:03:01Z
#21 Miguel Grinberg said 2021-09-04T14:26:55Z
#22 Andre Jansen said 2021-09-06T16:14:25Z
#23 Miguel Grinberg said 2021-09-06T22:35:16Z
#24 Bilal said 2021-09-07T22:22:33Z
#25 Miguel Grinberg said 2021-09-08T13:39:36Z