Documente Academic
Documente Profesional
Documente Cultură
Django
Learn the Basics
Abhijit Bonik
Built in features
ORM
Built in Authentication System
Template engine
Form processing
Web server for development and testing
Caching
Middleware system
An admin interface
It solves many common problems associated with Web
development, such as security features, database access,
sessions, template processing, URL routing,
internationalization etc.
Advance Concepts Django Rest API
MVT Framework
Execution Flow
Directory Structure
Summer_Internship/
manage.py
Summer_Internship/
__init__.py
settings.py
urls.py
wsgi.py
Advance Concepts Django Rest API
Directory Structure
Summer_Internship/
manage.py
Summer_Internship/
interns/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Advance Concepts Django Rest API
Models
You will define all your models in models.py file for the respective
module.
class Interns(models.Model):
name = models.CharField(max_length=100)
address = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
institute = models.CharField(max_length=100)
Note: Every class you define in models.py file will create a table in
the database.
Advance Concepts Django Rest API
Views
URLs
Template
The template file will display the value of variables or data it has
received from the view function. Following is a interns.html file -
{% extends ’base.html’ %}
{% for intern in interns %}
{{ intern.name }}
{{intern.address}}
{{intern.institute}}
{% endfor %}
Advance Concepts Django Rest API
URLs
{% extends ’base.html’ %}
<a href="{% url ‘intern_profile’ intern.pk %}">
{{ intern.name }} </a>
<p> {{intern.address}} </p>
<p> {{intern.institute}} </p>
Advance Concepts Django Rest API
Forms API
{% if user.is_authenticated %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="btn btn-success">Post</but
</form>
{% endif %}
ModelForm API
View function
if request.method == ’POST’:
form = NewInternForm(request.POST)
if form.is_valid():
intern = form.save()
return redirect("intern_profile", pk=intern.pk)
else:
form = NewInternForm()
return render(request, ’create_intern.html’, {’form’: form})
Advance Concepts Django Rest API
Advance Concepts
Advance Concepts Django Rest API
class CreateInternView(View):
def post(self, request):
form = NewInternForm(request.POST)
if form.is_valid():
intern = form.save()
return redirect(’intern_profile’, intern.pk)
return render(request, ’create_intern.html’, {’form’: form})
urlpatterns = [
url(r’^create_interns/$’, views.CreateInternView.as_view(),
name=’create_intern’),
]
Advance Concepts Django Rest API
class BoardListView(ListView):
model = Interns
context_object_name = interns
template_name = interns.html’
Advance Concepts Django Rest API
CreateView
DetailView
class InternProfileView(DetailView):
model = Intern
template_name = "intern_profile.html"
context_object_name = "intern"
This class will fetch the primary key from the url and return an
object of a single intern matching the key
Advance Concepts Django Rest API
Rest API
Serializers
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Interns
fields = (’pk’, ’name’, ’address’, ’institute’)
Advance Concepts Django Rest API
class InternViewSet(viewsets.ModelViewSet):
queryset = Interns.objects.all().order_by(’-name’)
serializer_class = InternSerializer
def intern_api(request):
if request.method == ’GET’:
interns = Interns.objects.all()
serializer = InternSerializer(interns, many=True)
return JsonResponse(serializer.data, safe=False)
elif request.method == ’POST’:
data = JSONParser().parse(request)
serializer = InternSerializer(data=data)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data, status=201)
return JsonResponse(serializer.errors, status=400)
Advance Concepts Django Rest API
@api_view([’GET’, ’POST’])
def intern_api(request):
if request.method == ’GET’:
interns = Interns.objects.all()
serializer = InternSerializer(interns, many=True)
return Response(serializer.data)
elif request.method == ’POST’:
serializer = InternSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data,
status=status.HTTP_201_CREATED)
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
Advance Concepts Django Rest API
https://github.com/fresearchgroup/Collaboration-System
https://fresearchgroup.github.io/docs-collaboration-system/
https://github.com/abhisgithub/django-nginx-installation-
script
Advance Concepts Django Rest API
Advance Concepts Django Rest API
Thank You!