Build Your Own Backend REST API using Django REST Framework
4.6 (212 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,108 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Build Your Own Backend REST API using Django REST Framework to your Wishlist.

Add to Wishlist

Build Your Own Backend REST API using Django REST Framework

Finally create that App + fully-functioning user database in this complete crash course to building a REST API
4.6 (212 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
3,108 students enrolled
Last updated 7/2017
Current price: $10 Original price: $50 Discount: 80% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 5.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • How to create the most important part of any user application
  • How to master the most in-demand full stack technologies today
  • How to create a local development server from scratch
  • How to create a brand new Django project with sqlite database
  • How to build your own browsable, self documenting REST API
  • Handle user registration, login, and status updates in your app with your very own REST API
View Curriculum
  • A basic level of experience in any programming language.
  • Familiarity with simple command line tools like command prompt or terminal.
  • Access to a computer running either Windows 10 or Mac OS.
  • A passion for learning and a willingness to persevere when things get tough.

Welcome to the comprehensive course on How to Build a REST API from scratch, using Django, Django REST Framework, Python, Vagrant, VirtualBox, Atom, and ModHeaders

The skills taught in this course are absolutely essential for creating successful products that users love and can’t live without!

Facebook, Instagram, Snapchat, you name it. These apps all have their own backend REST APIs that handle millions of call requests everyday. You cannot build a successful app with a backend REST API!

Not only is it essential to whatever app or MVP you’re building -- the skills you learn in this course will make you a kickass developer in the workplace.

If you’re a front-end developer and you take this course, you’ll be able to “speak backend” with your colleagues and understand what’s going on “under the hood” of all your projects, increasing your confidence and earning respect.

If you’re a back-end developer this course will help to sharpen your skills in some of the most in-demand technologies on the market today: Django, Django REST Framework and Python.

If you’re a newbie developer or just starting out in your career, this course will give you a very practical foundation to building your portfolio and your earning potential.   

In this course you will learn the best-practice way of building your very own REST API.

You will learn how to create a local development server and test your code each step of the way.

Whether you’re looking to gain a bit of experience with backend development, or you’re looking to create a REST API to turn your app idea into a reality - then this course is for you!

By the end of this course I guarantee you will have built a fully functioning REST API that can handle:

  • Creating and updating user profiles.

  • Login and authentication.

  • Posting status updates.

  • Viewing status update feeds.

You’ll also have a solid foundation to becoming an expert in backend software development! 

Who is the target audience?
  • This course is for developers who want build a REST API either for their app, MVP or business idea.
  • This course is for frontend developers who want to learn backend.
  • This course is for any beginner to advanced level programmer who wants to build their own product, front to back, without having to find a backend developer!
Compare to Other Python Courses
Curriculum For This Course
72 Lectures
Course introduction
3 Lectures 09:20

Introduction video to How to build a REST API using Python & Django REST Framework. In this video I explain what the course is about and who it is for.

Preview 01:56

In this lesson I explain the teaching style and how best to take this course.

Preview 01:29

To build our REST API we are going to use Vagrant, VirtualBox, Atom, Python, Git, Django and Django REST Framework. In this lesson I explain how these will work together to create our REST API.

Preview 05:55
Setting up your development environment
1 Lecture 08:10

In this lesson I show you how to install all of the applications required for this course. 

I demonstrate using Windows, however, all of the applications required are available for Mac and Linux. 

If you already have these tools installed or you know how to install them yourself then feel free to skip this lesson. 

Just make sure you have Vagrant, VirtualBox, Atom, Git-SCM and ModHeader (a chrome extension) installed. You can find the links to each one in the resources.

Preview 08:10
Setting up your project
2 Lectures 16:46

In this lesson I'll explain how to create a local workspace where we will be storing all the code for our API.

Creating a workspace

In this lesson I'll show you how to create a README file for our project and initialise a new Git repository. I'll also show you how to make our first Git commit (something we'll be doing lots of throughout the course).

Update: The official GitHub Python .gitignore file is missing `.vagrant` from the list of ignored files. I've since updated this link to point to an extended version of the original Python.gitignore file which includes this extra item as well as `.sqlite3`. This makes Git ignore the temporary vagrant files and database which would typically be excluded from the git repository. (Thanks Keith for pointing this out!).

Creating a Git project
Creating a development server
4 Lectures 17:57

In this lesson I'll show you how to create a Vagrantfile which we will use to describe the server we need for our back-end API.

Creating a Vagrantfile

In this lesson I'll teach you how to customise your Vagrantfile to describe a server which has all the required dependencies and settings to build and test our API.

Configuring our Vagrant box

Here I will show you how to start and connect to our development server.

Running and connecting to our dev server

In this lesson I teach you how to run a traditional Python "Hello World" script on our newly created server.

Running a Hello World script
Creating a Django app
6 Lectures 25:34

In this lesson, I'll show you how to create a Python Virtual Environment using virtualenvwrapper.

Create Python Virtual Environment

In this lesson I'll show you how to install the required Python packages using Python PIP.

Install required Python packages

In this lesson I'll show you have to create a new Django project and app using the Django CLI.

Create a new Django project & app

In this lesson I'll show you how to enable our newly created app in the Django settings file.

Enable our app in the Django settings file

Here I'll show you how to save the Python PIP dependencies to a requirements file.

Saving our requirements

In this lesson I'll show you how to test and commit the changes to Git.

Test and commit our changes
Setup the Database
5 Lectures 34:50

In this lesson I'll introduce you to the concept of Django Models. 

What are Django Models?

Here I'll show you how to create a user database model which we will use to store our user profiles.

Create our user database model

In this lesson I'll show you how to create a model manager for our user profile model. This model manager will be used to help Django work with our custom user model.

Add a user model manager

In this lesson I show you how to set the custom user model in the Django settings.

Set our custom user model

Create migrations and sync DB
Setup Django Admin
3 Lectures 08:39

In this lesson I show you how to create a superuser.

Creating a superuser

In this lesson I show you how to enable the Django Admin.

Enable Django Admin

In this lesson we test the Django admin in the browser.

Test Django Admin
Introduction to API Views
9 Lectures 42:51

In this lesson I show you what an APIView is in the Django REST Framework.

What is an APIView?

Create first APIView

Configure view URL

Testing our API View

Create a Serializer

Add POST method to APIView

Test POST Function

Add PUT, PATCH and DELETE methods

In this lesson I show you how to test the PUT, PATCH and DELETE methods.


When on the bottom of the hello-view page, ensure the Raw data tab is selected to see both the PUT and PATCH options.

Test the PUT, PATCH and DELETE methods
Introduction to Viewsets
6 Lectures 25:27
What is a Viewset?

Create a simple Viewset

Add URL Router

Testing our Viewset

Add create, retrieve, update, partial_update and destroy functions

Test Viewset
Create Profiles API
10 Lectures 38:44
Plan our Profiles API

Create user profile serializer

Create profiles Viewset

Register profile Viewset with the URL router

Test creating a profile

Create permission class

Add authentication and permissions to Viewset

Test new permissions

Add search profiles feature

Test searching profiles
4 More Sections
About the Instructor
Mark Winterbottom
4.6 Average rating
212 Reviews
3,108 Students
1 Course
Full-Stack Software Engineer

Hey, I’m Mark! I’m an award-winning full-stack software engineer with a passion for learning and teaching new technologies.

This passion started at 12-years-old when I taught myself how to make Windows batch scripts.  Little did I know that hacking around on my computer back then would turn into a life-long passion for programming.

I went on to complete a degree in Computer Systems Networking at Nottingham Trent University, and worked in various developer roles at multinational corporations and startups.  

I always believed that the final step to learning is teaching. And so I started a software development blog and consultancy firm called London App Developer.  My work has been featured in the Daily Mail, Mashable, TechCrunch, the Huffington Post, the Mirror and Gizmodo, and over 30,000 developers read my programming tutorials every month.

My goal for teaching on Udemy is to help developers make a better living through their code. Whether that’s by building new systems and tools to make the world a better place, or just to make their lives easier. If I can help them to increase their earning power, so they can better support their communities and loved ones, then even better. :)

My specialities are Python, Django, JavaScript, HTML5 and CSS3, but because I’m full-stack, I can work my way around most programming languages and frameworks.

I live in London, England with my wife and business partner, Brooke.

Brooke Rutherford
4.6 Average rating
212 Reviews
3,108 Students
1 Course
Brand & Marketing Communications

Hi! I'm Brooke. I'm a digital marketing professional with an expertise in social media, branding and content strategy. I'm also one half of a London-based software consultancy firm (and blog) called London App Developer. We make training guides and courses for the developer community. :)

After earning a MA in Communication from the University of Ottawa, I moved to London, England to start a career in journalism, PR and social media. After a short time in this city, I moved into education and technology, and the two have been a passion of mine ever since! 

I've worked for struggling start-ups and billion-dollar companies. My experience has been diverse. But each role and project has given me a unique perspective on how to connect and develop long-term, meaningful relationships with customers to drive sales and growth for brands and business.

Though not a developer by trade - I am in business/married to one! My role on Udemy right now is to help support the delivery of our first course called BUILD YOUR BACKEND USING PYTHON & DJANGO REST FRAMEWORK. We hope you enjoy it!