This is the first in a series of posts that will walk through the steps of designing, building, and deploying a complete web app using Django. I'm going to assume you know the basics when it comes to Python, Django, HTML, CSS, Javascript and some basic tools. This will be a part time effort, so you should be able to work alongside me in a couple of hours a day.
A word about costs: you'll need to spend ten bucks or so for a domain name, and anywhere from $30 to $150+ for hosting if you don't already have these set up. Of course, you can just follow along on your server at home for free, but you'll learn more if it's all live when everything is said and done.
Let's get started.
Day 1: Get Ready
Concept
We need to figure out what we'll be building, and we need to get a few things set up.
First, you need an idea. It doesn't have to be the next Twitter. Try to pick something simple that you'll be able to code up in a couple of evenings, but useful enough that it's worth doing right.Let that simmer on the back burner, and let's get some stuff set up.
Hosting
You will need someplace to host the app. As noted above, you can do this on your own machine at home, but it's good practice to set it up live — the learning will be stickier too.
Webfaction is highly recommended for Django hosting, but it can be a bit pricey if you're just experimenting.Deploying Django on Dreamhost will suffer a bit performance-wise, but if you google for a coupon you may be able to get up to $97 off. So for $30 you can get a year's worth of hosting. Not bad.
Go off and do this. Now. This post will still be here when you come back.
Domain
Obviously, you're going to need a domain name where your app will live.
How's that idea you've been simmering for the past 20 minutes? Good, now pick a domain name to go with it. You can let this simmer for a while too, but remember that the name can take a day or two to propagate through DNS once you've purchased it.Not sure about Webfaction, but you can buy this through Dreamhost for $10 or $15. Depending on what kinds of promotions they're offering, you may even have a credit for a free domain name when you signed up for hosting.
Go ahead and snag that domain now, I'll wait patiently...
Tools
Since you don't want to develop on the hosting platform, you'll need to install some things on your own machine so you can develop and test. This is the minimum I've been using, please leave a comment if there's something you think I'm missing.
- Apache with mod_python (used at Webfaction) or mod_fastcgi (used at Dreamhost). If you have a different host (or you're reading this at some future date and the options have changed), just make sure that what you're using matches them.
- Editor
- Firefox with the Firebug and Web Developer add-ons.
- Python
- Django. I use the trunk. (Actually, I pull from my github fork.)
- Selenium
It will be helpful if you can install the tools in the same way — including the same paths — that you have on your web host. If this isn't practical, it isn't a big deal, but it will make your life easier down the road when you're trying to figure out why something works locally but doesn't work on the live site.
That's it for today. As homework, set up a practice "hello world" app on your host so that you know everything is working.Update: continue this series with day two: mockups.
Subscribe to The Daily Build to make sure you get all the posts in this series!