Django web development has been around for about 7 years.
This post is to give you an overview of the various products and why we decided to use them in our web development process.
The following are some of the products that I will be highlighting:
I will begin with WebFaction. WebFaction is the hosting provider that we use for our projects and highly recommend to all of our clients. They vary from most other hosting providers in a number of ways. They do cost a bit more than your average hosting provider, however, the service and support they provide is definitely worth the extra money.
My experience with their support staff has been excellent!
Any time I have put in a request for assistance, they have responded usually within a couple of hours.
They also have a community forum to post questions in and get support from other clients of WebFaction. WebFaction is one of the premiere, if not the premiere, hosting provider for Django based web sites. One of the main benefits that WebFaction provides, is that they don't overload their servers with clients. They keep the number of clients down so that the performance and responsiveness of your web site stays optimal.
You can learn more about WebFaction here.
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Developed in 2003 by a fast-moving online-news operation, Django was designed to handle two challenges: the intensive deadlines of a newsroom and the stringent requirements of the experienced Web developers who wrote it. It lets you build high-performing, elegant Web applications quickly.
Django is an Open Source web framework that enables you to build clean and feature-rich web applications with minimal time and effort.
Benefits of using Django in the development of your website:
1. Human readable website URLs.
Django promotes the use of human readable urls.
These are not only good for you and your visitors to read, but the search engines love them as well.
Here is an example I pulled from an article I found on the Internet.
Knoxnews.com (Django): http://www.knoxnews.com/news/2008/jul/22/storms-fell-trees-cut-power/
As you can see the first entry is a lot more understandable than the second.
As you read those two examples, notice how the first one gives you an understanding of what the content is about. The second is just a bunch of numbers that are pretty much meaningless.
If you got these in an E-mail, the first entry would at least give you an idea of what you will find if you click on that link.
Django offers the flexibility to customize pieces of the web site to suit the needs of the project at hand instead of relying on pre-built applications. For example, you have a widget that displays how many blog posts you have in a particular year, but you want to break it down by month to make it easier to find specific articles. Using Django, we can customize that widget to display what we want, how we want.
3. Higher level of security.
Because of the way that Django is developed and installed, you have a greater level of security when you compare it to a web site that was developed with PHP for example. This is because the source code, excluding the html and css files, for your web site are not directly exposed to the Internet and your viewers online. In most cases the web pages are dynamically generated and then sent to your browser using templates.
4. Unique design.
Yes, I just mentioned templates. However, these templates are different from what you may find available from some hosting providers. The templates that we develop are for creating a look and feel specific to your web site. We are not just filling in information in a template that we downloaded off of another site.
Therefore you are guaranteed that the site we develop for you will look unique. This is one of the big features of Django. We create a template with the relevant base code, and when a visitor comes to your site the web page presented to them is generated using this template which places the page content and images in the locations specified in the code.
5. Easy to update.
Using this template structure makes it much easier for us to add additional pages as well as make site wide, visual or code changes. The template structure also ensures that your website will have a consistent look and feel throughout the entire site.
I chose Django-CMS as it has everything that we were looking for in a CMS. At the time of selection, it was also the one that seemed to have the most development going on, meaning they are constantly working on improvements and developing new features.
For those who may not know what a CMS is, it is a Content Management System. It allows you to separate the development processes from the content creation portions of web development. It also has built-in features that ensure that each web page is properly optimized based on search engine optimization best practices.
For our clients that want to be able to update their site on their own, this CMS is an invaluable tool because of the ease of use that it provides. This means that even someone with little or no knowledge of creating a web page will be able to easily add and edit content and images on the web site that we develop for them.
Our clients access their site by logging in to an Admin control panel and use a somewhat simplified editor that we setup for them. Then they can copy and paste content from a word processor, or type their content directly into the editor. Once they are finished entering their content they can use the preview feature to ensure that it looks good on their website before they actually publish it live to their site.
As added security for larger companies, Django-CMS also has workflow features that allow you to specify who is allowed to enter content, but aren't allowed to publish the page without it being reviewed first.
Django-CMS can be extened with plugins too. Plugins are similar to widgets or extensions used in other systems. There are a variety of plugins available. For example there are plugins that will display your latest Tweets. There is also a plugin that will add a photo gallery to your page to display your work.
One last feature that I will mention is Django-CMS' support for multiple languages. This means that you can create the same page in multiple languages which then lets your visitors view the page in different languages.
We are using Django-Blog-Zinnia because it has all the features that we were looking for, and of course, is compatible with Django-CMS.
This is a great benefit for our clients that want both a website and a matching blog for their business.
One feature in particular is that Django-Blog-Zinnia comes with plugins that work with Django-CMS. Meaning that we can add a plugin to one (or all) of your web pages to display a blog roll of your latest blog posts.
To create blog entries we have chosen to use the same editor that is used in Django-CMS, TinyMCE. By using the same editor for both products, it makes creating content much easier because you are not having to learn how to use multiple editors. As you can see below, the TinyMCE editor we use is very similar to a word processing program.
Django-Blog-Zinnia includes important features that all bloggers are looking for:
- RSS or Atom Feeds - allows your visitors to subscribe to your blog in various ways.
- Spam protection - filters out comments that have a high possibility of being spam.
- Ping Directories - gives you the ability to notify directory services that in turn notify the various search engines of new blog posts. This helps to get your blog posts picked up quicker by the search engines so you don't have to wait until the next time the spiders crawl your site for new content. For example we have noticed that by using this feature, Google has picked up some of our blog posts within 4 hours of posting them.
- Twitter support - this feature allows you to send a tweet to your followers with the title of the blog post and a link to it.
As we continue to develop new sites using Django we have noticed that Google has indexed our client's new sites within approximately 7 days after they go live. While we can never guarantee how long it will take for any search engine to index any website, we believe that one week is quite acceptable.
For more information on how your business will benefit from a Django site, please contact us.
About the author: I am a Python / Django Developer as well as one of the co-founders of Professional Web Studio, a Calgary web design and development firm that incorporates SEO strategies into every site we develop to ensure that it is found and indexed well by the search engines.