There're three common ways of developing website; from scratch, using framework (CakePHP,CodeIgniter, Rails, Django, or using CMS (Drupal, Joomla, Wordpress, etc).
What's the difference?
I'll give you an anology to show the difference. A couple of husband and wife decided to build their house with spesific design. They set the due date is in six months later. They have three choices; (1) build by their own (own material & own resources), (2) build by their own resources and ready-to-use-material (no need to make their own material), (3) find the house that meet their specific design and buy it or find the house, buy and customized it to meet their spesific design.
Point (1) is how we develop from scratch. We use our own code (without any library). Point (2) is how we develop by using framework. We still have to code the web but not from scratch, we can use the library provide from the framework. The last point (3) is how we use CMS. We can choose the modules, use it or customize it (may include making own modules).
In my project I'll use Django framework. This framework adheres to the principle of Don't Repeat Yourself (DRY) and provides a powerful templating system that lets the developer design, content and code separately.