Method based views in django applications

416 views
360 views

Published on

Published in: Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
416
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Method based views in django applications

  1. 1. Method-based viewsin Django applications Gary Reynolds Touch Technology @goodtune bitbucket.org/goodtune github.com/goodtune
  2. 2. Refresher• Last time we looked at building up a library which will help save us some boilerplate• It incorporated better form fields, simple decorated mixins to enforce authentication, and a few other niceties
  3. 3. This time • What if we need to deploy the same application multiple times? • In our URLconf we could point to the applications urls.py as many times as we need...from django.conf.urls.defaults import patterns, urlurlpatterns = patterns(, url(r^usual-use/, myapp.urls), url(r^it/makes/sense/here/too/, myapp.urls),)
  4. 4. Issues• If your application requires configuration at run-time, you probably use a custom settings.MYAPP_VAR or similar?• That will usually apply globally, not per mount point.• If the application was an instance with it’s own state, the issue goes away.
  5. 5. Basic anatomyclass MyApp(object): def __init__(self, name=myapp, app_name=myapp): self.name = name self.app_name = app_name def get_urls(self): urlpatterns = patterns(, url(r^$, self.index, name=index), ) @property def urls(self): return self.get_urls(), self.app_name, self.name def index(self, request): return HttpResponse()
  6. 6. Let’s see it in practice
  7. 7. Horses for courses• This book store is missing a view for the details of a book.• It really is an admin application, allowing authenticated creation and updating of Book instances by authenticated users.• Lets use inheritance to split the functionality.
  8. 8. Subclass our application
  9. 9. Real world example• Tournament Control is an application for managing sporting competitions • Scheduling fixtures • Allocating matches to grounds & timeslots • Recording results and automatic ladder updates
  10. 10. Tournament Control• Shameless plug • http://www.sydney.touch.asn.au/ • http://www.touchsuperleague.org.uk/ • http://www.touchworldcup2011.co.uk/• We’re interested in Touch Superleague because they run multiple application instances - they have venues in Edinburgh, Cardiff, and Jersey.
  11. 11. Lets look at the front-endwww.touchsuperleague.org.uk/edinburgh/draws-ladders
  12. 12. Questions?
  13. 13. • Sample project can be obtained from bitbucket.org • bitbucket.org/goodtune/sydjango- example-two• This presentation can be downloaded from SlideShare • slideshare.net/goodtune/method-based- views-in-django-applications-14050952

×