Your SlideShare is downloading. ×
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Django introduction
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Django introduction

1,575

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,575
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
40
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introduction to Django Master in Free Software   2009/2010 Joaquim Rocha <jrocha@igalia.com> 3, July 2010
  • 2. What is it? "Django is a high­level Python Web framework  that encourages rapid development and  clean, pragmatic design." From Django official website Master in Free Software | 2009­2010 2
  • 3. What is it? Internal project of Lawrence Journal­World in  2003 Should help journalists meet fast deadlines Should not stand in the journalists' way Got its name after the famous guitarrist  Django Reinhardt  Master in Free Software | 2009­2010 3
  • 4. The framework Object­Relational Mapper Automatic Admin Interface Elegant URL Design Powerful Template System i18n it's amazing...! Master in Free Software | 2009­2010 4
  • 5. Big community Django has a big community and an extensive list of  Django apps Search for them in http://code.google.com Other interesting websites: * Django sites: http://www.djangosites.org * Django people: http://www.djangopeople.com Master in Free Software | 2009­2010 5
  • 6. Deployment FastCGI mod_python mod_wsgi ... Master in Free Software | 2009­2010 6
  • 7. DB Backend Officially supported: PostgreSQL MySQL SQLite Oracle Master in Free Software | 2009­2010 7
  • 8. Using Django Master in Free Software | 2009­2010 8
  • 9. Installation Just get a tarball release or checkout the sources: http://djangoproject.com/download Then: # python setup.py install Or: # easy_install django Master in Free Software | 2009­2010 9
  • 10. Development Master in Free Software | 2009­2010 10
  • 11. Creating a project $ django­admin.py startproject Project Project     __init__.py     manage.py     settings.py     urls.py Master in Free Software | 2009­2010 11
  • 12. Running the project $ ./manage.py runserver ...and open your browse at localhost:8000 Master in Free Software | 2009­2010 12
  • 13. Running the project Master in Free Software | 2009­2010 13
  • 14. Development Django Projects have Apps Apps are the projects' components Master in Free Software | 2009­2010 14
  • 15. Creating an App $ ./manage.py startapp my_app my_app     __init__.py     models.py     tests.py     views.py Master in Free Software | 2009­2010 15
  • 16. Building the database $ ./manage.py syncdb Master in Free Software | 2009­2010 16
  • 17. Project's configuration Easy configuration in the settings.py file Master in Free Software | 2009­2010 17
  • 18. Building the database $ ./manage.py syncdb Master in Free Software | 2009­2010 18
  • 19. Development Django follows the MTV design pattern: Model­Template­View Master in Free Software | 2009­2010 19
  • 20. Models Models are a series of classes describing  objects They represent the database objects Never touch SQL again! Master in Free Software | 2009­2010 20
  • 21. Models class Post(models.Model): title = models.CharField(max_length = 500) content = models.TextField() date = models.DateTimeField(auto_now = True) ... Master in Free Software | 2009­2010 21
  • 22. Views Views are a series of functions that normally  process some models and render HTML It's where the magic happens! How to get all blog posts from the latest 5 days and order them by  descending date? Master in Free Software | 2009­2010 22
  • 23. Views import datetime def view_latest_posts(request): # Last 5 days date = datetime.datetime.now() - datetime.timedelta(5) posts = Post.objects.filter(date__gte = date).order_by('- date') return render_to_response('posts/show_posts.html', {'posts': posts}) Master in Free Software | 2009­2010 23
  • 24. Templates Will not let you repeat yourself! Will save designers from the code. Master in Free Software | 2009­2010 24
  • 25. Templates <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> {% block content %}{% endblock %} </body> </html> Master in Free Software | 2009­2010 25
  • 26. Templates {% extends "base.html" %} {% block title %}Homepage{% endblock %} {% block content %} <h3>This will be some main content</h3> {% for post in posts %} <h4>{{ post.title }} on {{ post.date|date:"B d, Y"| upper }}<h4> <p>{{ post.content }}</p> {% endfor %} {% url project.some_app.views.some_view some arguments %} {% endblock %} Master in Free Software | 2009­2010 26
  • 27. URLs In Django, the URLs are part of the design! urls.py use regular expressions to match URLs  with Views Master in Free Software | 2009­2010 27
  • 28. URLs urlpatterns = patterns('Project.some_app.views', (r'^$', 'index'), (r'^posts/(?P<r_id>d+)/$', 'view_latest_posts'), (r'^create/$', 'create'), url(r'^view/post/(?P<p_id>d+)/$', 'view', name = 'view_post'), ) Master in Free Software | 2009­2010 28
  • 29. Forms Series of classes that represent an HTML form Will let you easily configure the expected  type of the inputs, error messages, labels,  etc... Master in Free Software | 2009­2010 29
  • 30. Forms class CreatePost(forms.Form): title = forms.CharField(label = "Post Title", max_length = 500, widget = forms.TextInput(attrs={ 'class': 'big_entry' })) content = forms.CharField() tags = forms.CharField(required = False) Master in Free Software | 2009­2010 30
  • 31. Forms def create_post(request): if request.method == 'POST': form = CreatePost(request.POST) if form.is_valid(): # Create a new post object with data # from form.cleaned_data return HttpResponseRedirect('/index/') else: form = CreatePost() return render_to_response('create.html', { 'form': form, }) Master in Free Software | 2009­2010 31
  • 32. Forms The quick way: <form action="/create/" method="POST"> {{ form.as_p }} <input type="submit" value="Create" /> </form> Master in Free Software | 2009­2010 32
  • 33. Where to go from here? Master in Free Software | 2009­2010 33
  • 34. Django hosts An extensive list is can be found at: http://code.djangoproject.com/wiki/DjangoFriendlyWe bHosts Popular ones: http://www.statopia.com/corporate/blog/2007/aug/05/ PopularDjangoHostingService/ Google's AppEngine is also Django friendly: http://appengine.google.com/ Master in Free Software | 2009­2010 34
  • 35. Help Django Docs http://docs.djangoproject.com Some books ● Learning Website Development with Django,  Packt ● Practical Django Projects, Apress ● Pro Django, Apress Master in Free Software | 2009­2010 35

×