What are the limitations of Django?

Source: Internet
Author: User
Tags time zones

Reply content:

Django's limitations are nothing more than encapsulation too much general enough, flexibility is not enough, middleware does not follow the WSGI protocol from a set of relatively closed, orm/template performance is poor.

For starters, the Django package is good, and beginners can quickly make an application without having to think about its limitations. When you really feel that its limitations have affected you, believe that you have the ability to jump out of its limits.

So do not think too much, timid, first make something to say, beginner quick and dirty no shame. This answer has been rewritten ...

The biggest problem with Django is that it already envisions a set of requirements for you and prepares the capabilities for those needs. When you use it, you do not need to analyze the requirements and then develop them under Django, but instead follow the instructions in the manual to turn on the Django features. In other words, you already have a molded hammer that can only be used to nail nails that it can nail.
If your needs are not covered by the Django design, then you can modify the requirements instead of modifying the application. Since Django has been heavily designed, it is expensive to modify the design two of times.

In a nutshell: Django is not a framework where the application's management of static resources is larger than Rails Asset pipeline gap. Not just the official staticfiles, including the third-party asset manager plug-in tried, and none of the sprockets worked, so eventually an empty Rails project was built to deal with Assets, and then let Django pass Manif EST file to invoke these resources.

There is no official support for NoSQL databases. While other frameworks do not seem to have official NoSQL support, the Django ORM and other components are deeply coupled, so if you replace the Django Orm with a NoSQL ORM, the other components are useless. There are now Django Nonrel branches that support MongoDB and some of the other NoSQL databases, though very useful, but because they are not official branches, there are a lot of extra costs to be made for compatibility with upstream versions. Django's limitations (relative to web.py) may be too many to encapsulate. Because you can build a blog in 10 minutes with Django (your own Baidu), but it also means that it does a lot of work for you behind the scenes and may not be optimized. And, the idea of Python, I think, is to show the statement that everything should be clearly stated, not by default. So if Django wants to do a good job, you may have to dig deeper into it and refine it.
If you have an in-depth understanding of its code, maybe it will make it better as long as it is the best framework for you. I started with Django 0.96 and now I can say that I've been watching Django grow up.
Django has been criticized most of the place is the ORM is too heavy, the template performance is too poor and so on, but I would like to say that these are often judge of the place, in fact, Django has given the alternative solution.
ORM: If you are too bothered to write model, just want to execute raw SQL, then you can refer to https:// docs.djangoproject.com/ en/1.4/topics/db/sql/ , even with this part, you can get a lot of benefits, no longer care about the database using MySQL or PostgreSQL, easy to set up and automatically close the database link. If you think the Django Orm is too bad, you can build your own Django Orm on top of that, but consider the risk of SQL injection yourself.
Template performance: Templates are only used when you return to Web requests, and if you like, you can use other templating systems, such as Jinja.

If you want to write a Hello World type of project, other lightweight frameworks look like several lines of code are implemented. And Django needs you to run a bunch of commands like Startproject,startapp first, which looks like a hassle. But as the project grows larger and you need to integrate more and more things, you'll find that Django can save you more time. Want a simple and customizable background data management? The Django admin is just too handy. Want a user registration system? There are also a lot of apps available and online. Want to automatically process time zones? Want to have a multi-lingual web interface? Wait a minute, these Django are already in your mind. The Django Django\utils directory is also a great treasure trove, and many useful small functions and classes can often be found here.

The combination of Django and JS is really a lot worse than rails if you have to have any limitations, and it's a bit cumbersome to deploy yourself (but now there's a quick deployment service like DotCloud). Laxative Ah, this is not my good, I will help you to invite a few more people.

Hard to say limitations, I'm afraid the biggest limitation is that the host of Python support is relatively small.

However, since your initial use is only a mainframe, always find, so this is not a big problem. If you get to the point of using a VPS or a physical host, that's even more of a problem, anyway. Some of the limitations of Django have been discussed, I quote here, you can see the following two blog posts: http://www. Cnblogs.com/zhengyun_us tc/archive/2006/11/19/564917.html
/ http COOKOO.ITEYE.COM/BLOG/3 3182 If each upgrade brings the non-compatible also count, that this is my personal most dissatisfied with the limitations. The performance of the Divine Code, or according to the application to decide. In these two articles, the chronology is a bit long, when the Django code that is mentioned is often modified, in this two years just good is reversed, RoR often not compatible updates, many friends have stepped on the mine, and Django is very stable.

I do not feel that there is limitations limit. Can only be used to nail the nails it can nail.
If your needs are not covered by the Django design, then you can modify the requirements instead of modifying the application. Since Django has been heavily designed, it is expensive to modify the design two of times.
  • Related Article

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.