Skip to main content

003 - Convert User Creation to REST API endpoint using Django Framework

Stream Our Mistakes EP 003

In this episode, we will be working creating a REST API endpoint using Django REST Framework.  This will be a multi part series as I plan to use this backend with a Xamarin Android application. No guarantees it is going to work but I will attempt it anyways. This podcast/blog isn't called stream our mistakes for nothing aye?

I looked over a few youtube videos, this blog post and the excellent Django Rest Documentation.

Since this repo is not public, here is the code snippets that are relevant to the video.
Please note: This project assumes you have already implemented Django Rest Framework in your project.

In the Serializers.py file:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 from rest_framework import serializer
 from django.contrib.auth.models import User
 
 class UserCreateSerializer(serializers.ModelSerializer):
   class Meta:
     model = User
     fields = ('first_name',
              'last_name',
              'email',
              'password',)
     extra_kwargs = {'password': {'write_only': True} }
   
   # override create function 
   def create(self, validated_data):
     username = validated_data['email']
     email = validated_data['email']
     first_name = validated_data['first_name']
     last_name = validated_data['last_name']
     password = validated_data['password']
     # I want to set the email as the username so this new object reflects that. 
     newUser = User(
         username = email,
         first_name = first_name,
         last_name = last_name,
         email = email,
         password = password)
     newUser.set_password(password)
     newUser.save()
     #return super().create(validated_data)    
     return validated_data

In my views.py:
1
2
3
4
# view 
class UserCreateAPIView(CreateAPIView):
  serializer_class = UserCreateSerializer
  returnAllUsers = User.objects.all()

Then we want to include the view in the urls.py:

1
2
3
4
# urls
from app.serializers import UserCreateAPIView
 
  url(r'^api/register/$', app.views.UserCreateAPIView.as_view()),   

As mentioned above, this video/post does not cover implementing the rest framework from scratch.

My settings file at this point looks like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
INSTALLED_APPS = [
    # Add your apps here to enable them    
    'app',
    'rest_framework',
    # default 
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
]

# currently leaving the permissions open.
# in the next episodes, I'll be updating this with token authetication.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),

}






Subscribe to the podcast on apple podcastsgoogle play,  stitcher

eddyizm
site: http://eddyizm.com
twitter: http://twitter.com/eddyizm
github: https://github.com/eddyizm

perry
github: https://github.com/apk29

---
**youtube live broadcast:**
https://youtube.com/user/eddyizm/live

Subscribe to our channel and follow my twitter feed to be notified of our next live broadcast and feel free to leave us comments and suggestions on what you want to see.


Comments

Popular posts from this blog

RSS feed is retired

Well, It seems this idea never really took off. So I'll just be posting directly to youtube and twitch. Here's the stream my mistakes playlist that I will add technical videos to: https://www.youtube.com/playlist?list=PLO7cwisTbrI0r238JqxcTZdFpf6d847YE

Sending SMS via code (.Net, c#)

Stream Our Mistakes EP 001 --- In this episode, we will work on sending SMS messages via code using twilio. The example said it could be done in 30 seconds but it took us closer to an hour. Browse the code, fork the repo to get ready for our next steps. https://github.com/mmdempsey/SMS-Automation Subscribe to the podcast on itunes , google play ,   stitcher | eddyizm site: http://eddyizm.com twitter: http://twitter.com/eddyizm github: https://github.com/eddyizm matt site: http://octon.io/ github: https://github.com/mmdempsey --- **Tool of the week:** https://technet.microsoft.com/en-us/sysinternals/zoomit.aspx --- **youtube live broadcast:** https://youtube.com/user/eddyizm/live Subscribe to our channel and follow my twitter feed to be notified of our next live broadcast and feel free to leave us comments and suggestions on what you want to see. ---

002 - 2D Flappy Bird game with Unity

Stream Our Mistakes EP 002 In this episode, we will be working on a 2d flappy bird game using the unity framework. tutorial https://noobtuts.com/unity/2d-flappy-bird-game Browse the code, fork the repo to get ready for our next steps. https://github.com/mmdempsey/FlappyBird Subscribe to the podcast on  apple podcasts ,  google play ,   stitcher eddyizm site:  http://eddyizm.com twitter:  http://twitter.com/eddyizm github:  https://github.com/eddyizm matt site:  http://octon.io/ github:  https://github.com/mmdempsey --- **youtube live broadcast:** https://youtube.com/user/eddyizm/live Subscribe to our channel and follow my twitter feed to be notified of our next live broadcast and feel free to leave us comments and suggestions on what you want to see.