So I'm comfortable programming in Python, I love the minimalist nature of the language. However, I haven't been exposed to any Django yet.

I do know html, css etc for web design but when making websites is it essentially doing either

1) The usual route: HTML, CSS,


2) Using Django

My understanding is that both the above can also be integrated with PHP, MySql, Javascript technologies.

Looking at www.reddit.com, I notice when I click view page source it doesn't seem to have the usual html (I know that reddit is made using Django)

Looking at another website eg www.cake.com, it seems to have the usual html.

Looking at both the above made me arrive at the conclusion that a website uses either Django or HTML/CSS only (not both at the same time).

This is my thought process.

  • 4
    What's your actual question? Dec 12, 2015 at 11:11
  • @PhilipKendall "when making websites is it essentially doing either 1) The usual route: HTML, CSS, or 2) Using Django" Dec 12, 2015 at 11:25
  • I had a quick look at the source code of the websites you provided just now and the most noticeable difference is that Reddit's source is very poorly formatted, so you have to scroll sideways (for ages) to read the source. Not sure if that's what you meant though?
    – Kay
    Dec 12, 2015 at 12:48

2 Answers 2


Django is a framework for building web applications with Python.

As it sounds like you might not know what these concepts are and are thus confused, I'll try to give a quick overview over what this means:

A framework gives you additional tools (libraries) to work with a programming language. It basically makes working with the language in certain contexts easier from the start as you don't have to build every tool you want to use from scratch. For example, connecting a website with a database might be made easier by using shortcuts (provided by the framework) for interacting with the database.

A web application is a website that reacts to user interaction. It doesn't only serve static content (the HTML and CSS you see in your browser) but dynamically serves content. Based on user input, your web application might e.g. retrieve information from a database and display it, or it might provide a way for the user to authenticate with the website (by checking credentials).

Django is one such web application framework, and Python is the programming language it is built on. There are other frameworks out there that make creating web applications easier, which are based on other languages (e.g. Ruby on Rails, often shortened to just Rails, which is based on the Ruby programming language). There are also other Python-based web application frameworks, which you could use instead of Django, e.g. Flask. As different frameworks provide different functionality and some might be better-suited for some tasks than others, it would make sense to look for online comparisons before picking one.

I have never worked with pure Python combined with HTML + CSS (like you'd combine HTML/CSS and PHP code in one document) and don't know if that is even possible and how one would go about it.

If you want to give Django a try, I'd recommend checking out the Django Girls tutorial, which is a very beginner-friendly tutorial available in several languages.

  • Hi @Kay That clears most things up, thanks. I'll also use the Django Girls tutorial too (though do not tell them I am, in fact, not a girl). Just to clarify one more thing, Python can be used 100% for creating a website from the bottom up, or do you need to also understand HTML/CSS for certain components? Dec 12, 2015 at 11:59
  • The tutorial is only named like that because it was created for workshops that focus on women, but it's otherwise not gendered in any way and helpful for all beginners, so no worries. ;) You will still need regular HTML and CSS (frameworks) for creating the frontend, i.e. the 'website part' of your web application. The tutorial contains intros to those too, btw.
    – Kay
    Dec 12, 2015 at 12:08
  • You could think of Django extending your regular static website, your HTML and CSS, with programmable functionality, making it dynamic. You'll still need the HTML+CSS (well, at least HTML) for what gets displayed in the browser because that's what websites are made up of.
    – Kay
    Dec 12, 2015 at 12:31
  • Folks, downvoting my answer without explaining why, especially if this helped the OP, doesn't make much sense, sorry. Why the question was put 'on hold' hours after an answer was provided & accepted is also a mystery to me. Edit: Ok, I just learned it will then be auto-closed after some days, that's fine with me. I thought it was going to get deleted.
    – Kay
    Dec 12, 2015 at 23:24

Using Django does not mean rejecting HTML. You can use Django to create Angular.JS sites, REST API's, SOAP API as well as regular sites with 'normal' HTML.

Most of the time Django is ORM engine and URL routing. Additionally, it may be combined with the template engine and integrated "CMS".

Not the answer you're looking for? Browse other questions tagged or ask your own question.