I built a website with Python and Django in a month.

Thomas Hayes
5 min readJan 29, 2021

I coded a website with Django, Python, and LAMP.

Hi! This is the landing page I created for a series I made about building a website from scratch for three weeks. I love learning about tech, and building useful tech. During these three weeks I’ll be:

  1. Setting up a server for web hosting.
  2. Building web pages to hold my blog and other content I create.
  3. Setting up basic databases and website scripts.
  4. Explaining the basics of how websites work.
  5. Telling you about everything I do.

Why did I create this project?

  1. The Internet is a fascinating thing that has shaped modern society. I want to learn about it and build in it.
  2. I want my own little corner of the Internet, where I could create and showcase my own content.
  3. I want to learn as much as I could about tech. Tech is eating the world, and I want to be a part of the revolution.
  4. To build my communication and writing skills. Half of this project is documenting and recording what you are working on. By writing about what I am creating, I simultaneously learn more about what I’m working on by reflecting on it and build a record of my work.

Here’s what I accomplished!

I set up a LAMP stack on my server.

I set up a blog.

I built a store back end.

https://docs.google.com/document/d/1yIRKg1uhj8jcpKcKwRIMX7_91slqY0UUG8nVTd7I8Ck/edit?usp=sharing

I wrote a tutorial on Html and Django.

https://docs.google.com/document/d/16NyCo4KRLHeLJs0w4NnBgd1x9ZGUYpqGY83gBJ1UNEY/edit?usp=sharing

I built a nice webpage for my blog.

https://docs.google.com/document/d/1AuLE79cF9G3RfpIWo5JxRJHh-ue47A9uAU1tIWhWyw0/edit?usp=sharing

I built a page for the Startup, Vector Launch to showcase their products.

https://docs.google.com/document/d/16NyCo4KRLHeLJs0w4NnBgd1x9ZGUYpqGY83gBJ1UNEY/edit?usp=sharing

I built a storefront for the computer company SiFive

https://docs.google.com/documentDjango/d/1hPHFVsgNFgFleWpcclTPDrbA4L502FXjZI8o58PiT28/edit?usp=sharing

Let’s look at my organization for this project.

I organized everything into a week by week basis, and set everything up to

Week 1: Find tutorials and other learning material I might need and set up my tech tools so I can start developing next week. Decide exactly what I want to build.

Week 2: Build rough versions of the web pages and features I want. I took this week to start implementing my pages on the website.

Week 3: I polished and refined the content I had already created. This week was about getting the details right and thinking about where I could improve.

Week 4: I finished my documentation and wrapped up my project.

If I did this again, what would I do differently?

  1. I would make a more detailed plan as far as what I am going to do. Some of my goals were intentionally vague because I wasn’t sure exactly where I would go with this project. Now that I have better web development knowledge, I can be more concrete with my goals.
  2. I would have built the website in a virtual environment. When you are working with python it’s a good idea to put everything in it’s own container so it doesn’t interfere with other versions of software used for other projects.
  3. I deployed my site on the production server last, and this was a mistake. When the end of the month came and it was time to deploy, I had multiple problems getting the server up and running. Next time I will deploy early and often.

What challenges did I overcome?

  1. Lack of experience with many of the tech tools I was using. I often didn’t understand exactly what I was supposed to be doing. If anything didn’t work, I had to begin debugging a tool I barely knew how to use. The solution? Research. There are a million and one things that can go wrong with computers, so knowing what to do in every situation is practically impossible. You have to become good at Googling error messages and reading software documentation to be able to fix things. Youtube and online guides become indispensable.
  2. DjangoTime constraint. I had to build something and ship it in a month, and this was using programming languages and tools I barely knew. While it would be nice if time wasn’t an issue when building something I live in the real world where stuff needs to get done on time. I had to choose goals that I could complete in the month, but that would still push me to learn new things. Sometimes time crunch is a big factor.

What did I get out of this project?

First of all, I learned to manage myself when working on projects like this. Starting with an idea and a limited schedule I had to choose a project I could complete on time while accomplishing my goal. I took the idea and broke it down into concrete tasks and assigned them to a schedule with deadlines. Then it was just about putting in the hours to get the work done.

I got to build a website for my own use, and some example web pages for companies I would like to work for.

I learned how to use These Tech tools and computer languages:

Html and CSS

Django

Python

LAMP (Linux, Apache, MySql, Python)

I also learned a little about websites and the internet’s general workings, something that I am certain will be valuable no matter what role I find myself in.

Last but not least I learned how to document my work with blog posts.

What do I want to do now?

This website project isn’t ending here. I’m going to keep building and refining this site as I go forward. I want to build more pages for things like videos, a link back to my Github, and much more. I have some issues to polish away too, like my blog posts not being able to display images and some features being set up in non ideal ways, like not using a python virtual environment .

This project says that I am a learner who can take an unfamiliar task and quickly turn it into a roadmap, and then take that roadmap and turn it into a completed project.

Thanks for checking this little project of mine out!

If you have any questions, comments, or just want to geek out over computers, you can find me on LinkedIn or email me at thomashayes@thomashayes.dev.

Looking forward to hearing from you!

--

--

Thomas Hayes

Programmer, web developer, computer hardware enthusiast. Interested in everything.