32
Django victor.miclo.kisi

Django Girls Mbale [victor's sessions]

Embed Size (px)

DESCRIPTION

A bunch of concepts in Django

Citation preview

Page 1: Django Girls Mbale [victor's sessions]

Django victor.miclo.kisi

Page 2: Django Girls Mbale [victor's sessions]

MTV??

Page 3: Django Girls Mbale [victor's sessions]

Model

Page 4: Django Girls Mbale [victor's sessions]

Template

Page 5: Django Girls Mbale [victor's sessions]

View

Page 6: Django Girls Mbale [victor's sessions]

views.pydef some_view(request):

return render_to_response(“path/to/template.html”, {}, RequestContext(request))

Page 7: Django Girls Mbale [victor's sessions]

HTML<html>

<head>

<title>Hello world</title>

</head>

<body>

<p>Hi</p>

</body>

</html>

Page 8: Django Girls Mbale [victor's sessions]

Tags in HTML

● Paragraphs● Headers● Divs● Section● asection● etc.● See W3C tutorials and plenty of Online

tutorials

Page 9: Django Girls Mbale [victor's sessions]

`style.css`

p{ color: red;}

CSS (Cascading Style Sheets)

Page 10: Django Girls Mbale [victor's sessions]

CSS (Cascading Style Sheets)

`style.css`

.food_section{ color: red;}

Page 11: Django Girls Mbale [victor's sessions]

CSS (Cascading Style Sheets)

`style.css`

#food_section{ color: red;}

Page 12: Django Girls Mbale [victor's sessions]

`http://getbootstrap.com`

<head>

<link rel=”styleshet” href=”path/to/bootstrap.css”>

</head>

<body>

...some code…

<script src=”path/to/bootstrap.js”></script>

Bootstrap

Page 13: Django Girls Mbale [victor's sessions]

`http://www.google.com/fonts`

<head>

<link rel=”styleshet” href=”path/to/bootstrap.css”>

<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>

</head>

<body>...</body>

Google Fonts

Page 14: Django Girls Mbale [victor's sessions]

URLs..

What is URL?

Page 15: Django Girls Mbale [victor's sessions]

URLs..

Maps your “view functions” to a URL.

● someone visits a URL● URL tells django what to do● Django returns a set of HTML (templates)

Page 16: Django Girls Mbale [victor's sessions]

Templates [part 1]

Just HTML… take it EASY!

Page 17: Django Girls Mbale [victor's sessions]

Templatesmysite

⇒ mysite

===> templates/mysite

===> [other folders]

⇒ app1

===> templates/app1

===> [other folders]

⇒ app2

===> templates/app2

===> [other folders]

Page 18: Django Girls Mbale [victor's sessions]

forms [Non-model based]

● Create `forms.py` in your Django Application

● import the Form class

● define what you’ll collect

Page 19: Django Girls Mbale [victor's sessions]

from django import forms

class MessageForm(forms.Form):

number = forms.CharField()

text = forms.CharField()

forms [Non-model based]

Page 20: Django Girls Mbale [victor's sessions]

from form import MessageForm

def new_message(request):

form = MessageForm()

if request.method == “POST”:

form = MessageForm(request.POST)

if form.valid():

form.save() # save

else:

pass # handle errors!

return render_to_response(‘messages/new.html’, {‘form’:form}, RequestContext(request))

Hooking up forms in Views

Page 21: Django Girls Mbale [victor's sessions]

Shortcuts!!!

Page 22: Django Girls Mbale [victor's sessions]

forms [Model based]

● Create `forms.py` in your Django Application

● import the Form class

● define what you’ll collect

Page 23: Django Girls Mbale [victor's sessions]

from django import forms

from .models import Message

class MessageForm(forms.ModelForm):

model = Message

forms [Model based]

Page 24: Django Girls Mbale [victor's sessions]

from form import MessageForm

def new_message(request):

form = MessageForm()

if request.method == “POST”:

form = MessageForm(request.POST)

if form.valid():

form.save() # save

else:

pass # handle errors!

return render_to_response(‘messages/new.html’, {‘form’:form}, RequestContext(request))

Hooking up forms in Views (similar)

Page 25: Django Girls Mbale [victor's sessions]

<form

Hooking up forms in HTML

Page 26: Django Girls Mbale [victor's sessions]

Some advanced topics...

Page 27: Django Girls Mbale [victor's sessions]

Template inheritanceBase HTML filee.g. base.html

Profile page

e.g. profile.html

Messages page

e.g. messages.html

Page 28: Django Girls Mbale [victor's sessions]

Template inheritanceBase HTML filee.g. base.html

Profile page

e.g. profile.html

Messages page

e.g. messages.html

Base HTML has your site-wide designs and you don’t have to repeat the design on different pages.

Page 29: Django Girls Mbale [victor's sessions]

Template inheritanceBase HTML filee.g. base.html

code sample...

<html><head><!-- CSS or js here --></head><body>{% block content %}{% endblock %}</body>

</html>

Page 30: Django Girls Mbale [victor's sessions]

{% extends “base.html” %}{% block content %}

<div>Hi {{ name }}. You are seeing your profile.</div>

{% endblock %}

Template inheritanceProfile pagee.g. profiles.html

code sample...

Page 31: Django Girls Mbale [victor's sessions]

What next…?

Page 32: Django Girls Mbale [victor's sessions]

● Do the django girls tutorial● Do the 6 part django tutorial (http:

//djangoproject.com)● Google a lot! ● Do many projects..● Check out TDD