4. Ruby on Rails (RoR)
• Made at 37 Signals by
DHH
• Paved the way for
framework development
in many other languages
• Written in Ruby
• Credited with people
!quot;#$%&'&$ ())* +,
finding out about ruby
5. Django
• Written in Python -$./0#12
• Similar philosophies as
Rails except they
stress modularity
• Made in Kansas at The 345&645#$12
World Company !quot;#$%&'&$ ())* +,
6. Why do we need them?
• Web Programming was a black art
• Bad Practices were formed
• High coupling of components
• Mind numbing processes had to be done
repeatedly. (i.e. CRUD pages)
• Infrastructure specific (switching to Oracle
= pain)
10. Database Management
• Object Relational Mapping (ORM)
• Switching to another database type is just
changing a flag
• Transaction support as well as database
migrations
11. Database Management
class Entry(models.Model):
pub_date = models.DateTimeField()
slug = models.SlugField(unique_for_date='pub_date')
headline = models.CharField(maxlength=200)
summary = models.TextField(help_text=quot;Use raw HTML.quot;)
body = models.TextField(help_text=quot;Use raw HTML.quot;)
author = models.CharField(maxlength=100)
Entry.objects.get(headline=’framework talk’)
Entry.objects.filter(pub_date=datetime.now())
13. Template Systems!
• Simple systems that can be used to
generate HTML, CSS, RSS, or any other
text based formats
• Controller provides context and separation
from model
• Good for designers
17. Request Routing
• All HTTP Requests get mapped to a
controller or 404 by naming conventions
(rails) or regex matching (django)
• domain.com/blog/view/getvar1/getvar2/...
• '^(?P<year>d{4})/(?P<month>[a-z]{3})/(?
P<day>w{1,2})/(?P<slug>[w-]+)/$'
18. Request Routing
• Naming Conventions vs. Regex Matching
• What else to you get?
• GET, POST variables, as much HTTP
Header information that you could want