Create a website with your own simple, custom CMS using HTML, CSS, JavaScript, Django, & Python!

Michelle Cruz, Developer at This Also

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
14 Lessons (48m)
    • 1. Introduction/Trailer

    • 2. Goals

    • 3. What are we making?

    • 4. What's in our toolbox?

    • 5. Installing dependencies

    • 6. Setting up our skeleton project

    • 7. Assessing the design

    • 8. Creating our HTML files

    • 9. Working with our Python files

    • 10. [*New*] Building out our HTML and Python files

    • 11. [*Coming Soon*] Setting up our Admin Login

    • 12. [*Coming Soon*] Styling our website

    • 13. [*Coming Soon*] Deployment

    • 14. Thank you!

28 students are watching this class

Project Description

Note: Please download the zip file attached before you get started as well as the README (you'll need to reference this for certain videos).

The packaged zip file includes the Design folder where you can find the Sketch file for the job listing website, as well as a folder with all the screens exported as png's. There's also the Development folder, which includes a folder with all the code for the finished website, as well as a folder with the skeleton project. 


For this project, I'm going to be walking you through creating a custom CMS for a job listing website. The focus of the lessons will be on the CMS, so absolutely feel free to use your own website for the example.

We'll mainly be focusing on building the environment, including creating an admin login, admin dashboard, and forms for publishing and editing entries. I'll walk you through saving a job listing on your database through a form, and then linking that job listing database entry to your public website.



Why do we need to use Python 2.7 and Django 1.11 if they aren't the latest versions?

We're using Python 2.7 to keep this lesson simple* since this is what’s included in Mac OSX as of publication and it supports the use of libraries. The versions of Python and Django that you are using are important. Django 1.11 is the last version to support Python 2.7. For more info about version support, go to Django's FAQ page.

(*For the purposes of this class and because I don't want to bombard you with so much information, I've used Mac OSX's built-in Python 2.7, but best practice would be to use a Virtual Environment. Mac's built-in Python is great for learning, but not the best for development because it may be out of date. Please feel free to explore the world of Virtual Environments on your own!)

Where is the data from the CMS stored?

In the Finished Project from the zip file, you'll notice the file db.sqlite3. This is where your data is stored. By default, Django's configuration uses SQLite, a lightweight database that is included in Python, so you won’t need to install anything else to support your database.

Can I use the SQLite database for production?

In this case, yes. You can technically use SQLite for development and production, but for much heavier transaction loads there may be better options such as PostgreSQL or MySQL. Go here to learn more about using other databases.


Again, there are a lot of other things you can do for best practices and efficiency, such as using CSS preprocessors like SCSS, but it would've been a lot to cover for this one class. I'm still learning the best ways to teach, so please feel free to reach out with any questions and/or feedback!

Student Projects