Mini Curso de Django

2,254 views

Published on

Minicurso realizado no II Congresso Acadêmico do CESMAC - Maceió/AL

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,254
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Mini Curso de Django

  1. 1. Welcome to the Django!
  2. 2. 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."
  3. 3. Origins... Django Reinhardt
  4. 4. Origins... Lawrence-Journal World
  5. 5. Origins... Pycon 2005 - Adrian Holovaty e Simon Willison BSD License* Django Software Foundation - 2008 * http://en.wikipedia.org/wiki/BSD_licenses
  6. 6. www.djangoproject.com
  7. 7. Skills Convention Over Configuration Object-Relational Mapping (ORM) Very useful admin CRUD Form handling Elegant URL Design Template system Cache system i18n
  8. 8. Principles (...or philosophies) DRY (Don't Repeat Yourself ) Loose coupling Write less code as possible Quick development Explicit is better than implicit
  9. 9. ...and the best, is
  10. 10. MVC? No... MTV!
  11. 11. MVC vs. MTV Model --> Model View --> Template Controller --> View
  12. 12. Overview
  13. 13. Go to the Project!
  14. 14. Setting up... Download djangoproject.com/download Install Unzip Django-x.x.tar.gz python setup.py install Or... apt-get install python-django (Debian like OS)
  15. 15. Create a Project... django-admin.py startproject my_project
  16. 16. Setup files __init__.py - indicates a python package manager.py - admin tasks settings.py - project settings urls.py - project urls map
  17. 17. Let's to do something... Open settings.py: DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = 'myblog.db' add 'django.contrib.admin' Open urls.py: Uncomment the line: "from django.contrib... " Uncomment the line: "admin.autodiscover()... " Uncomment the line: "(r'^admin... "
  18. 18. Development server python manager.py syncdb python manager.py runserver [8000]
  19. 19. Others Servers... Development Server Apache + Mod_Python Apache + FastCGI
  20. 20. Create the app python manage.py startapp my_blog
  21. 21. Setup files init.py - indicates a python package models.py - app domain model views.py - project controller
  22. 22. 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
  23. 23. 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()
  24. 24. Setting the model classes to admin Open admin.py and edit: from django.contrib import admin from models import Artigo admin.site.register(Artigo)
  25. 25. Add the app to the admin Open settings.py and add: "my_project.blog" Re-sync the database Re-run the development server
  26. 26. 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 admin admin.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), )
  27. 27. 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>
  28. 28. Look your app! http://localhost:8000/
  29. 29. Recap... Django is easy Django is fun Django scales Django is maintainable Django saves small kittens It rocks - USE IT!
  30. 30. Sites powered by Python/Django
  31. 31. Contact/follow us... leofernandesmo@gmail.com felipe.buarque@gmail.com Twitter: @leofernandesmo @felipe_wally

×