Python Tutorial #25: Build an Automation Script — Real-World Python

In the previous tutorial, we built a web scraper. Now let’s build an automation script — a file organizer that sorts files by type, processes CSV data, and logs everything properly. This is the final project in the Python Tutorial series. It ties together everything: file I/O, dataclasses, error handling, logging, testing, and packaging. By the end, you will have a practical tool you can use every day. What We Are Building A file organizer that: ...

May 1, 2026 · 8 min

Python Tutorial #24: Build a Web Scraper — BeautifulSoup and httpx

In the previous tutorial, we built a REST API with FastAPI. Now let’s build a web scraper — a program that extracts data from web pages automatically. We will use httpx to fetch pages and BeautifulSoup to parse HTML. By the end, you will know how to extract data, save it to JSON and CSV, and scrape responsibly. When to Scrape (and When Not To) Web scraping is useful for: Collecting data that is not available via an API Monitoring prices, job listings, or news Research and data analysis But check these first: ...

May 1, 2026 · 7 min

Python Tutorial #23: Build a REST API — FastAPI

In the previous tutorial, we built a CLI tool with Click and Rich. Now let’s build a REST API — a web API that any frontend, mobile app, or other service can call. We will use FastAPI, the fastest-growing Python web framework. It has automatic documentation, type checking, and built-in validation. By the end of this tutorial, you will have a working Bookmark Manager API. Why FastAPI? Automatic API docs — Swagger UI at /docs (free, no setup) Type-safe — uses Python type hints for validation Fast — built on Starlette and Pydantic (one of the fastest Python frameworks) Async support — native async/await (from Tutorial #18) Pydantic validation — automatic input validation (from Tutorial #10) Install the dependencies: ...

May 1, 2026 · 8 min

Python Tutorial #22: Build a CLI Tool — Click and Rich

In the previous tutorial, we learned about logging and debugging. Now let’s build our first real project — a command-line task manager using Click for argument parsing and Rich for colored output. This project uses everything we have learned so far: dataclasses, file I/O, error handling, testing, and more. By the end, you will have a working CLI tool you can install with pip install. What We Are Building A task manager that runs in the terminal: ...

April 30, 2026 · 9 min

Python Tutorial #21: Logging and Debugging — Professional Python

In the previous tutorial, we learned about databases with SQLite and SQLAlchemy. Now let’s learn about logging and debugging — the professional way to understand what your program is doing. If you still use print() to debug your code, this tutorial is for you. By the end, you will know how to use Python’s logging module, debug with breakpoint(), and profile your code. Why print() is Not Enough Every beginner uses print() for debugging: ...

April 30, 2026 · 8 min

Python Tutorial #20: Databases — SQLite and SQLAlchemy

In the previous tutorial, we learned about HTTP requests and APIs. Now let’s learn about databases — how to store, read, update, and delete data using Python. We will cover two approaches: Python’s built-in sqlite3 module (no installation needed) and SQLAlchemy (the most popular Python ORM). By the end of this tutorial, you will know how to build data-driven applications. What is SQLite? SQLite is a database that stores everything in a single file. It comes built into Python — no installation, no server, no configuration. It is perfect for: ...

April 30, 2026 · 8 min

Python Tutorial #19: HTTP and APIs — Requests, httpx, and REST

In the previous tutorial, we learned about async/await and asyncio. Now let’s learn about HTTP requests and APIs — how to call REST APIs, send data, handle responses, and build a reusable API client. Almost every Python application talks to an API at some point. Weather data, payment processing, social media, databases — they all use HTTP. By the end of this tutorial, you will know how to make HTTP requests, handle errors, and build a clean API client. ...

April 29, 2026 · 8 min

Python Tutorial #18: Async/Await — Asynchronous Python

In the previous tutorial, we learned about testing with pytest. Now let’s learn about async/await — Python’s way to run multiple tasks at the same time without threads. Async programming is one of the most powerful features in modern Python. It is used in web frameworks (FastAPI), HTTP clients (httpx), database drivers, and many other libraries. By the end of this tutorial, you will understand how async works and when to use it. ...

April 29, 2026 · 10 min

Python Tutorial #17: Testing with pytest — Write Tests That Matter

In the previous tutorial, we learned about type hints. Now let’s learn about testing — how to write tests that catch bugs and give you confidence to change your code. Testing is one of the most valuable skills you can learn as a developer. It saves time in the long run, makes refactoring safe, and serves as living documentation. When you have tests, you can change code confidently — if the tests pass, you know nothing is broken. By the end of this tutorial, you will know how to write tests with pytest, use fixtures, parametrize tests, and mock external dependencies. ...

April 29, 2026 · 11 min

Python Tutorial #16: Type Hints Deep Dive — Writing Safer Python

In the previous tutorial, we learned about context managers. Now let’s take a deep dive into type hints — annotations that make your code safer, more readable, and easier to refactor. We have been using basic type hints since Tutorial #3. Now it is time to learn the advanced types: Optional, Union, Literal, Annotated, TypeAlias, Callable, and more. By the end of this tutorial, you will know how to annotate any Python code and use tools like mypy to catch bugs before runtime. ...

April 28, 2026 · 10 min