Django Intro

django-admin startproject mysite
python manage.py migrate
python manage.py runserver
python manage.py startapp blog

Bootstrapping Django

Models and Views

Step 3

First Model and Admin Interface

python manage.py makemigrations blog
python manage.py migrate blog
python manage.py createsuperuser

URL handling and HTML rendering

 

Step 4

url handler syntax (urls support regex !)

render(request, 'blog/post_list.html', {})
url(r'^$', views.post_list, name='post_list')

HTML render syntax

Simple Template

Step 5

Pass vairables

Display variables

render(request, 'blog/post_list.html', {'posts': posts})
<div>{{ posts }}</div>

Step 6

More Template features

{% for post in posts %}
<div>
 <p>{{ post.published_date }}</p>
</div>
{% endfor %}

Django Templates has "for" and "if .. else"

Forms and Templates

Step 7

<p>
    <label for="id_title">Title:</label> 
    <input id="id_title" maxlength="200" name="title" type="text" />
</p>
<p>
    <label for="id_text">Text:</label> 
    <textarea cols="40" id="id_text" name="text" rows="10"></textarea>
</p>
{{form.as_p}}

=

Step 8

Authentication

from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.models import User

Simple Angular App

Step 9



function($interpolateProvider) {
        $interpolateProvider.startSymbol('//');
        $interpolateProvider.endSymbol('//');
        }

Angular basics: ng-app, ng-controller, $scope

Make angular compatible with Django Templates:

Step 10

Simple check for length

$scope.verify = function(){
    if( $scope.uname.length < 10 ){
        $scope.err_uname="";
    }
    else{
        $scope.err_uname="Cannot be more than 10char";
    }
}

Step 11

Angular also has "for" and "if"

<div ng-if="asubmit">
    <input type="submit" class="btn btn-primary" ng-click="" value="Submit" />
</div>
<div ng-if="!asubmit">
    <input type="submit" class="btn btn-primary disabled" value="Submit" />
</div>

Django Intro

By Murali Suresh