X

Download An Intro About Django Framework PowerPoint Presentation

SlidesFinder-Advertising-Design.jpg

Login   OR  Register
X


Iframe embed code :



Presentation url :

Home / Science & Technology / Science & Technology Presentations / An Intro About Django Framework PowerPoint Presentation

An Intro About Django Framework PowerPoint Presentation

Ppt Presentation Embed Code   Zoom Ppt Presentation

PowerPoint is the world's most popular presentation software which can let you create professional An Intro About Django Framework powerpoint presentation easily and in no time. This helps you give your presentation on An Intro About Django Framework in a conference, a school lecture, a business proposal, in a webinar and business and professional representations.

The uploader spent his/her valuable time to create this An Intro About Django Framework powerpoint presentation slides, to share his/her useful content with the world. This ppt presentation uploaded by naveensingh in Science & Technology ppt presentation category is available for free download,and can be used according to your industries like finance, marketing, education, health and many more.

About This Presentation

An Intro About Django Framework Presentation Transcript

Slide 1 - Rapid Web Development with Python/Django
Slide 2 - Why Python? Written in C – high performance, ability to link to C libraries for extensions Interpreted script language compiled on the fly into bytecode Easier to read coding standards – whitespace sensitive Object Oriented
Slide 3 - Introducing…Django “The framework for perfectionists with deadlines” MVC Flexible template language that can be used to generate HTML, CSV, Email or any other format Includes ORM that supports many databases – Postgresql, MySQL, Oracle, SQLite Lots of extras included – middleware, csrf protections, sessions, caching, authentication
Slide 4 - Django Concepts/Best Practices DRY Principle – “Don’t Repeat Yourself” Fat models, thin views Keep logic in templates to a minimum Use small, reusable “apps” (app = python module with models, views, templates, test)
Slide 5 - Django Project Layout django-admin.py startproject manage.py __init__.py settings.py urls.py wsgi.py
Slide 6 - settings.py Defines settings used by a Django application Referenced by wsgi.py to bootstrap the project loading Techniques for managing dev vs prod settings: Create settings-dev.py and settings-prod.py and use symlink to link settings.py to the correct settings Factor out common settings into base-settings.py and import. Use conditionals to load correct settings based on DEBUG or other setting
Slide 7 - Sample Settings… DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', )
Slide 8 - Django Apps Reusable modules django-admin.py startapp Creates stub layout: admin.py models.py templates (directory) tests.py views.py urls.py
Slide 9 - Django Models Defined in models.py Typically inherit from django.db.models.Model Example Model: from django.db import models class TestModel(models.Model): name = models.CharField(max_length = 20) age = models.IntegerField()
Slide 10 - Models (cont’d) Default is to set NOT NULL on all fields. Override by adding null = True to field definition: name = models.CharField(max_length=20, null = True) Relationships defined through special field types: models.OneToOneField(model) models.ForeignKey(model) models.ManyToManyField(model)
Slide 11 - Models (cont’) Need Nulls in a Boolean Field? Use models.NullBooleanField() Set Default value with “default”: count = models.IntegerField(default = 0) Use a inner Meta class to define additional options, especially useful for abstract classes: class TestModel(models.Model): class Meta: abstract = True
Slide 12 - Model Methods model.save(self, *args, **kwargs) model.delete(self, *args, **kwargs) model.get_absolute_url(self) model.__str__(self) [Python 3] model.__unicode__(self) [Python 2] Override with super(MODEL, self).save(*args, **kwargs)
Slide 13 - Activating a Model Add the app to INSTALLED_APPS in settings.py Run manage.py validate Run manage.py syncdb Migrations Write custom script or manually handle migrations Use South
Slide 14 - Selecting Objects Models include a default manager called objects Manager methods allow selecting all or some instances Question.objects.all() Question.objects.get(pk = 1) Use try block, throws DoesNotExist exception if no match Question.objects.filter(created_date__lt = ‘2014-01-01’) Returns QuerySet
Slide 15 - Introspecting Legacy Models manage.py inspectdb Cut and paste generated code into models.py – Easy!!
Slide 16 - Full Sample from django.db import models from datetime import datetime class TimestampedModel(models.Model): created_datetime = models.DateTimeField() updated_datetime = models.DateTimeField() def save(self, *args, **kwargs): if self.id is None: self.created_datetime = datetime.now() updated_datetime = datetime.now() super(TimestampedModel,self).save(*args, **kwargs) class Meta: abstract = True
Slide 17 - Full Sample (cont’d) class Question(TimestampedModel): question_text = models.CharField(max_length = 200) def __str__(self): return self.question_text
Slide 18 - Function vs. Class Views Django allows two styles of views – functions or class based views Functions – take a request object as the first parameter and must return a response object Class based views – allow CRUD operations with minimal code. Can inherit from multiple generic view classes (i.e. Mixins)
Slide 19 - Sample – Viewing a List of Questions Function based: from .models import Question from django.shortcuts import render_to_response def question_list(request): questions = Question.objects.all() return render_to_response(‘question_list.html’, { ‘questions’:questions})
Slide 20 - Quick CRUD Operations with Generic Views ListView UpdateView CreateView If Model is specified, automagically creates a matching ModelForm Form will save the Model if data passes validation Override form_valid() method to provide custom logic (i.e sending email or setting additional fields)
Slide 21 - Sample – As Class Based View from .models import Question from django.views.generic import ListView class QuestionList(ListView): model = Question context_object_name = ‘questions’
Slide 22 - Django Templates Very simple syntax: variables = {{variable_name}} template tags = {%tag%} Flexible – can be used to render html, text, csv, email, you name it! Dot notation – template engine attempts to resolve by looking for matching attributes, hashes and methods
Slide 23 - Question List Template List of Questions {%if questions%}
    {%for q in questions%}
  • {{q.question_text}}
  • {%endfor%}
{%else%}

No questions have been defined

{%endif%}
Slide 24 - urls.py Defines routes to send urls to various views Can use regular expressions Extract parameters from a url and pass to the view as a named parameter: r(‘^question/(?P\d+)/$’,’views.question_detail’) Extensible – urls.py can include additional url files from apps: r(‘^question/’,include(question.urls))
Slide 25 - Hooking up the Question List from django.conf.urls import patterns, url, include urlpatterns = patterns(‘’, (r’^questions/$’,’views.QuestionList’) ) OR: from django.conf.urls import patterns from views import QuestionListView urlpatterns = patterns(‘’, (r’^questions/$’,’views.QuestionList.as_view()) )
Slide 26 - Forms in Django django.forms provides a class to build HTML forms and validation. Example: from django import forms class EditQuestionForm(forms.Form): question_text = forms.CharField(max_length = 200) Often redundant when creating forms that work on a single model
Slide 27 - ModelForms Automatically generate a form from a model. Handles saving a bound model Can specify fields to be included or excluded in the form Sample: from django.forms import ModelForm from .models import Question class QuestionForm(ModelForm): class Meta: model = Question fields = [‘question_text’]
Slide 28 - Using a ModelForm Create an instance of an empty form: form = QuestionForm() Create a form to update an existing instance of a model: question = Question.objects.get(pk = 1) form = QuestionForm(instance = question) Pass the form into the template and use the form methods to render the form: form.as_p form.as_ul form. form..errors
Slide 29 - Request & Response Request object encapsulate the request and provide access to a number of attributes and methods for accessing cookies, sessions, the logged in user object, meta data (i.e environment variables), Response objects are returned to the browser. Can set content type, content length, response does not have to return HTML or a rendered template Special response types allow for common functionality: HttpResponeRedirect Http404 HttpStreamingResponse
Slide 30 - Django Extras CRSF Middleware – enabled by default. Include template tag in all forms: {%csrf_token%} Authentication Caching Sessions Messages Email Logging
Slide 31 - Authentication Django’s out of the box Auth system uses database authentication. Changed extensively in Django 1.6 to allow custom User objects. AUTHENTICATION_BACKENDS setting in settings.py allows overriding how User objects are authenticated If using the Authentication middleware and context_processors the current user is available to code as request.user and {{user}} is defined in all templates
Slide 32 - Auth Decorators Live in django.contrib.auth.decorators login_required @login_required def function_view(request): …. user_passes_test (can be used with lambda functions for real power) – @user_passes_test(lambda u: u.is_staff) def function_view(request): … has_perms – test for user permissions
Slide 33 - Decorating CBVs Decorator is applied to the dispatch method Must be converted to a method_decorator – use django.utils.decorators.method_decorator function: class MyView(ListView): @method_decorator(login_required) def dispatch(self, *args, **kwargs): super(MyView,self).dispatch(*args, **kwargs)
Slide 34 - Custom Auth Backend for the Bubble
Slide 35 - Sending Email django.core.mail includes functions and classes for handling email Set EMAIL_HOST in settings.py to outgoing mailserver Import send_mail for simple mail: send_mail(subject, message, from, to_emails) Use django.template.render_to_string to format a message using a template Use EmailMultiAlternatives to create a text message and attach a html version as well.
Slide 36 - Resources Python – http://www.python.org Django – http://www.djangoproject.com Python Packages – https://pypi.python.org Django Packages – https://www.djangopackages.com
Slide 37 - Q & A