In November of 2024 I wrote a blog post titled "Is Python Really That Slow?", in which I tested several versions of Python and noted the steady progress the language has been making in terms of…| blog.miguelgrinberg.com
In the Q&A session following my EuroPython 2025 presentation about the Microdot web framework, a member of the audience asked me what the performance of MicroPython running on a microcontroller…| blog.miguelgrinberg.com
My article on creating a React + Flask project is one of the most visited on this blog. Can you believe that I wrote it over 5 years ago?In this article and video I'm going to share how I'm building…| blog.miguelgrinberg.com
People keep asking me If I use Generative AI tools for coding and what I think of them, so this is my effort to put my thoughts in writing, so that I can send people here instead of having to repeat…| blog.miguelgrinberg.com
The other day I shared my code editor window during a video call with a client, and he immediately did a double take. "How did you make your code look like that?", he wanted to know. Have a look at…| blog.miguelgrinberg.com
A fast-paced introduction to Python for intermediate developers–now with coverage of generative AI! For over 25 years, The Quick Python Book has been one of the best Python books money can buy. It concisely covers programming basics, while introducing Python's comprehensive standard library and unique features in depth and detail. In this fourth edition, you’ll find new coverage of AI coding tools like Copilot and Google's Colaboratory (Colab), and develop a mindset that can make the most...| Manning Publications
I've been given a review copy of The Quick Python Book, Fourth Edition by Naomi Ceder, published by Manning. Since I often get asked for Python book recommendations, I thought it would be a good idea…| blog.miguelgrinberg.com
A common need in web applications is to create a form that allows the user to enter a list of items, with the number of items not known in advance. This is a pattern often used when entering user…| blog.miguelgrinberg.com
In this tutorial I'm going to show you how to extend SQLAlchemy so that you can define database columns that are stored encrypted. In the solution I'm going to share, the columns that are designated…| blog.miguelgrinberg.com
In this article I'm going to review the steps you need to take to obtain an A+ SSL security rating for your website, as mine has.This tutorial applies to any hosting solution that uses Nginx as web…| blog.miguelgrinberg.com
I'm seeing a stream of "year in review" blog posts about all sorts of topics pop up to coincide with the start of 2025. I'm not sure if this is going to be a new tradition for me, but to follow this…| blog.miguelgrinberg.com
My standard response when someone asks me how I deal with Python being such a slow language is that Python is by far the fastest to write, cleanest, more maintainable programming language I know, and…| blog.miguelgrinberg.com