Mini Curso Django Ii Congresso Academico Ces

32
Welcome to the Django!

TAGS:

description

Apresentação usada no mini-curso de Django realizado no 2º Congresso Acadêmico do Cesmac.

Transcript of Mini Curso Django Ii Congresso Academico Ces

Page 1: Mini Curso Django Ii Congresso Academico Ces

Welcome to the Django!

Page 2: Mini Curso Django Ii Congresso Academico Ces

What's Django?

"Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design." 

from http://www.djangoproject.com/

 "...and not a CMS System."

Page 3: Mini Curso Django Ii Congresso Academico Ces

Origins...

Django Reinhardt

Page 4: Mini Curso Django Ii Congresso Academico Ces

Origins...

Lawrence-Journal World

Page 5: Mini Curso Django Ii Congresso Academico Ces

Origins...

• Pycon 2005 - Adrian Holovaty e Simon Willison• BSD License*• Django Software Foundation - 2008

* http://en.wikipedia.org/wiki/BSD_licenses

Page 6: Mini Curso Django Ii Congresso Academico Ces

www.djangoproject.com

Page 7: Mini Curso Django Ii Congresso Academico Ces

Skills

 

• Convention Over Configuration • Object-Relational Mapping (ORM)• Very useful admin CRUD• Form handling• Elegant URL Design• Template system• Cache system• i18n

   

Page 8: Mini Curso Django Ii Congresso Academico Ces

Principles (...or philosophies)

   • DRY (Don't Repeat Yourself)• Loose coupling • Write less code as possible• Quick development• Explicit is better than implicit

    

Page 9: Mini Curso Django Ii Congresso Academico Ces

...and the best, is

Page 10: Mini Curso Django Ii Congresso Academico Ces

MVC? No... MTV!

Page 11: Mini Curso Django Ii Congresso Academico Ces

MVC vs. MTV

   • Model --> Model• View --> Template• Controller --> View

Page 12: Mini Curso Django Ii Congresso Academico Ces

Overview

Page 13: Mini Curso Django Ii Congresso Academico Ces

Go to the Project!

Page 14: Mini Curso Django Ii Congresso Academico Ces

 • Download

o djangoproject.com/download

• Installo Unzip Django-x.x.tar.gzo python setup.py install

• Or... apt-get install python-django (Debian like OS)

Setting up...

Page 15: Mini Curso Django Ii Congresso Academico Ces

Create a Project...

   • django-admin.py startproject my_project

Page 16: Mini Curso Django Ii Congresso Academico Ces

Setup files

 • __init__.py - indicates a python package

 • manager.py - admin tasks

 • settings.py - project settings

 • urls.py - project urls map

Page 17: Mini Curso Django Ii Congresso Academico Ces

Let's to do something...

• Open settings.py:o DATABASE_ENGINE = 'sqlite3'o DATABASE_NAME = 'myblog.db'o add 'django.contrib.admin'

• Open urls.py:o Uncomment the line: "from django.contrib..."o Uncomment the line: "admin.autodiscover()..."o Uncomment the line: "(r'^admin..."

Page 18: Mini Curso Django Ii Congresso Academico Ces

Development server

   • python manager.py syncdb

 • python manager.py runserver [8000]

Page 19: Mini Curso Django Ii Congresso Academico Ces

Others Servers...

• Development Server • Apache + Mod_Python

 • Apache + FastCGI

Page 20: Mini Curso Django Ii Congresso Academico Ces

Create the app

    • python manage.py startapp my_blog

Page 21: Mini Curso Django Ii Congresso Academico Ces

Setup files

  • init.py - indicates a python package

 • models.py - app domain model

 • views.py - project controller

Page 22: Mini Curso Django Ii Congresso Academico Ces

App x Project

  • App - web app that do something. E.g. XXX

• Project - lot of apps and themselves settings. A project can be a lot of apps, and a app can stay in severals projects

Page 23: Mini Curso Django Ii Congresso Academico Ces

Create the model

  •  Open models.py and edit:

   from django.db import models

class Artigo(models.Model): titulo = models.CharField(max_length=100) conteudo = models.TextField() publicacao = models.DateTimeField()

Page 24: Mini Curso Django Ii Congresso Academico Ces

Setting the model classes to admin

• Open admin.py and edit:    from django.contrib import adminfrom models import Artigo admin.site.register(Artigo)

Page 25: Mini Curso Django Ii Congresso Academico Ces

Add the app to the admin

   • Open settings.py and add: "my_project.blog"

• Re-sync the database

• Re-run the development server

Page 26: Mini Curso Django Ii Congresso Academico Ces

Setting the urls

 • Open the urls.py and edit:

 from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:from django.contrib import adminadmin.autodiscover()

from my_blog.models import Artigo

urlpatterns = patterns('', (r'^$', 'django.views.generic.date_based.archive_index', {'queryset': Artigo.objects.all(), 'date_field': 'publicacao'}), (r'^admin/(.*)', admin.site.root),

)

Page 27: Mini Curso Django Ii Congresso Academico Ces

Setting the templates

 • Create templates/blog/artigo_archive.html and edit: 

  <html><body>

<h1>Meu blog</h1>

{% for artigo in latest %}<h2>{{ artigo.titulo }}</h2>

{{ artigo.conteudo }}{% endfor %}

</body></html>

Page 28: Mini Curso Django Ii Congresso Academico Ces

Look your app!

    • http://localhost:8000/

Page 29: Mini Curso Django Ii Congresso Academico Ces

Recap...

   • Django is easy• Django is fun• Django scales• Django is maintainable• Django saves small kittens• It rocks - USE IT! 

Page 30: Mini Curso Django Ii Congresso Academico Ces

Sites powered by Python/Django

Page 31: Mini Curso Django Ii Congresso Academico Ces
Page 32: Mini Curso Django Ii Congresso Academico Ces

Contact/follow us...

[email protected]@gmail.com

Twitter:@leofernandesmo

@felipe_wally