Python – How to develop front end (UI) for the Django website

djangofront-endpythonweb-developmentweb-framework

I am learning Django and new to web development. Please excuse me if you find this question too dumb.

So, I am creating a Facebook application using Django which I would like to host in Google App Engine. The project would be focusing on reading RSS/ Atom feeds of any website (That's all I can say now).

I am sure enough to process the RSS/Atom files but I am worried about the front end (User Interface) part – "The design part". I don't know HTML/ CSS/ JavaScript (I can handle simple HTML stuff but that doesn't lead to any designing thing).

First, I thought of using tools like dreamweaver or any equivalent software for designing UI but when I really started learning django and getting into it, It seems to be a "not possible" thing.

So,

  • How should I design the UI part of my site? Can't I use tools like dreamweaver?

    • If NO, what's the best way for guy like me who doesn't know JavaScript/ CSS
    • If YES, what's the best open source alternative to dreamweaver?
    • Can Google App Engine handle all this suff?
  • How people who deal with Django edit those template pages. The Django mentions the it will separate the logical (views) and design (templates) parts so that different departments in a company can handle separately. But Considering the fact that the Django's HTML pages are filled with "tags" which are no way related to HTML (designing), how UI people handle it?

Best Answer

The Django docs never mentioned that a person who doesn't know what HTML/JS/CSS is about can use it. Separation of concerns is done also in the backend, where the actual action(the views) are separated from the database layer or the URL-routing logic - That allows for loose-coupling. It never means you can write views without ever understanding your models. Similarly(well, not that similarly), you do need to have an understanding of HTML/CSS to get basic web pages up. You may or may not want to learn some JS, but I think with HTML5, it is more or less essential to know some JavaScript.

No sane web-developer is going to advise to to use a WYSIWYG editor like DreamWeaver. Write HTML by hand. You may, however, use things like HTML5 Bolierplate to get your project started fast.

Google AppEngine is a PaaS that you can use to deploy your application. It will provide among other things, the Python runtime, a high-replication datastore etc. - but it will not take care of generating your front-end.

If you're going to hire someone to take care of the front-end, that person would anyway have to know how to use Django tags, as really(if you follow the MVC - or MTV pattern closely), they define the blurred line between "static" and "dynamic" web-pages. Even if you choose to hire a frontend-developer, I suggest you grasp the basics of HTML and CSS(at least so much that you know how it works and how are you going to serve the CSS static files). It will only help you in the long run.

Not all people have good design skills, and design is undoubtedly best left to skilled people, but when it comes to actually serving pages with that design, it is all HTML and CSS. So you may hire a person who doubles up(most do) as a front-end designer and a front-end developer. But I suggest you to not remain completely unaware of front-end technologies.

Related Topic