But the above will only let you make very basic apps. If you want to make slightly more complex things, there are Content Management Solutions like Wordpress, Joomla or Drupal. (these are amongst the most popular ones, they have readymade plugins so if your only motive is to get a site up and running, they will serve the purpose.)
If you want more customization you might have to learn MVC frameworks. Here(http://blog.fruiapps.com/2012/04/Understanding-MVC-Architect...) i have written a basic tutorial on MVC. The popular frameworks are Ruby on Rails Django (Python) CodeIgnitor(PHP) BackBone (JS) My rule of thumb for deciding is: Get a hang of a server side scripting language(PHP/Python/Ruby), choose the framework in that particular language.
Another most important rule that you should keep in mind is: All that you want to do has been done, you need to assemble it your way!! Learn to copy, modify and paste to suit your needs. Don't be afraid of any implementation it will be out somewhere there. Thats it, hope it helps.
Go with what you know already. Just add the client-side bits you need (html, etc.).
Django could be a good choice, but don't limit yourself to one language/framework.
Good luck.
How did I learn?
I started with PHP first, writing small scripts and spending time IRC and reading official docs. I attended PHP conference which had prominent minds like creator framwework, Drupal Users etc ...
I created Mini ERP for schools as startup and never launched it.
Then I tried Ruby on Rails and cloned a open source project and modified the source code and fixed bugs (never bothered to submit).
Then I tried Django but wasn't impressed, then I tried Flask and I liked it very much and tried Pylons. Now I am settled with Flask and hacking brubeck occasionally.
Sites I have built: 1. www.sachintweets.in 2. www.iplsaga.in 2. www.pylive.codespeaks.in(currently down)
Web Apps: 1. Gummi - multi user chat room with Flask + Redis 2. Blaze - Static file generator
Source code: https://github.com/kracekumar
Takeaway 1. Choose a language and start researching on available web frameworks 2. Attend Conferences. 3. Follow hackers in twitters 4. Subscribe to subreddit 5. Join Mailing list. 6. Use Github and bitbucket.
By creating stuffs which interests you, will answer the question.
None of this stuff is as easy to pick up on your own. Then, after you get a feel for how others do things, you can make informed decisions about how to run your own projects.
I'd say pick a stack (JavaScript, Python, Ruby or whatever) and jump right into it.