Anvil: Web Apps with Nothing but Python Course

4.5 hours, 100% free
Take this course for FREE
This course is carbon neutral.

Course Summary

Building data-driven web apps is tough. Yes, Python makes it easier than most languages, but you need to know a host of different languages and technologies and they have to fit together just right. This usually includes Python, HTML, CSS, SQL, Linux, a database server, and maybe even JavaScript. But with Anvil, you can create full stack, data-driven web apps with only Python. You write Python on the backend and Python on the client-side. The HTML and CSS are handled with Anvil's drag-and-drop visual editor. The database is seamlessly connected back to your application. And this is the course to teach you how to be effective with Anvil and Python to build data-driven web applications.

What students are saying

In these first 13 minutes I learned so many techniques and best practices.

Quite a few times I found myself cursing that it had taken me weeks to learn what Michael was demonstrating in meer minutes.

The beauty of the course however lies in the fact that you're not spoon fed everything. You're expected to have prior knowledge of concepts such as Python Classes, data structures and so on.
-- Julian Sequeira (from @pybites)

Source code and course GitHub repository

github.com/talkpython/anvil-course

What's this course about and how is it different?

This is the definitive course on building web apps with Anvil and Python. It covers the core concepts for sure: forms, design components, and databases. But also covers building an ecommerce web application from scratch including secure user management.

In this course, you will:

  • Creating your first Anvil web application
  • How Anvil seamlessly mixes a single page browser-based app with a backend
  • Using the form designer to create visually interesting user interfaces
  • Understand how the code-behind Python integrates with the UI elements
  • Add validation for user input
  • Navigate between multiple forms without reloading the application
  • Create user accounts and allow login from multiple sources
  • Model data in the Anvil database service
  • Insert into and query data from the database service
  • Integrate Plotly plots for interactive charts and graphs
  • Build HTTP endpoints and custom APIs for your Anvil app
  • Host your application on a custom domain, including SSL support
  • Add Stripe credit card support to allow for purchases directly within the application
  • And lots more

  • View the full course outline.

Who is this course for?

Anyone who has struggled to create a proper web application and would like to use their existing Python knowledge to entirely create a full stack web app without SQL, CSS, HTML, JavaScript and all the rest.

This course assumes some basic knowledge of Python. It does not use advanced features of the language in significant ways so basic knowledge may be sufficient. But the course is not a beginner Python course, so students with little to no Python language experience should take a foundational course first. We recommend our Python Jumpstart by Building 10 Apps as a prerequisite if needed.

Concepts backed by concise visuals

While exploring a topic interactively with demos and live code is very engaging, it can mean losing the forest for the trees. That's why when we hit a new topic, we stop and discuss it with concise and clear visuals.

Here's an example of introducing the concept of navigating between views (components) without reloading the entire Anvil web app.

Example: Concepts backed by concise visuals

Follow along with subtitles and transcripts

Each course comes with subtitles and full transcripts. The transcripts are available as a separate searchable page for each lecture. They also are available in course-wide search results to help you find just the right lecture.

Each course has subtitles available in the video player.

Get hands-on for almost every chapter

Learning to code is an interactive experience. That's why it's important to write code and explore the app we build during this course. We encourage you to build a similar web app using your Anvil account while going through each chapter. The source code for the entire application will be available both on the GitHub repo as well as clonable directly within Anvil.

Who am I? Why should you take my course?

Who is Michael Kennedy?

My name is Michael, nice to meet you. ;) There are a couple of reasons I'm especially qualified to teach you Python.

 1. I'm the host of the #1 podcast on Python called Talk Python To Me. Over there, I've interviewed many of the leaders and creators in the Python community. I bring that perspective to all the courses I create.

 2. I've been a professional software trainer for over 10 years. I have taught literally thousands of professional developers in hundreds of courses throughout the world.

 3. Students have loved my courses. Here are just a few quotes from past students of mine.

"Michael is super knowledgeable, loves his craft, and he conveys it all well. I would highly recommend his training class anytime." - Robert F.
"Michael is simply an outstanding instructor." - Kevin R.
"Michael was an encyclopedia for the deep inner workings of Python. Very impressive." - Neal L.

Free office hours keep you from getting stuck

One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.

That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.

Just visit your account page to see the upcoming office hour schedule.

The time to act is now

Have you struggled to convert your idea into a Python-based web app. Anvil significantly simplifies that process. Take this course and finally create that app you've always wanted to.

Course Outline: Chapters and Lectures

15:57
7:12
2:28
3:18
1:44
0:38
0:37
7:05
0:43
3:02
0:43
1:18
1:19
38:42
4:18
5:22
4:26
3:45
5:01
8:01
6:25
1:24
24:44
2:25
5:32
5:26
2:53
3:05
3:08
2:15
17:29
1:44
2:09
3:26
3:23
1:23
1:20
4:04
30:58
1:05
2:58
3:02
4:57
4:14
1:32
0:52
3:41
6:35
2:02
16:50
1:15
5:08
2:15
4:11
2:44
1:17
27:44
2:25
3:51
1:53
3:28
6:15
2:51
7:01
29:33
7:07
4:19
3:29
1:50
3:40
9:08
34:26
8:02
6:46
6:35
6:36
6:27
7:52
1:36
1:44
3:07
1:25
16:28
1:33
1:51
6:26
5:20
1:18
3:32
3:32
Take this course for FREE
Talk Python's Mastodon Michael Kennedy's Mastodon