I’m trying to figure out how Django works with NoSQL databases in an e-commerce project. I’m not only looking at MongoDB but also wondering if alternatives like CouchDB or other non-document NoSQL systems can be used. Also, I’m curious which web server is best for this kind of project. I noticed CherryPy supports SSL, so does that mean Tornado is no longer a recommended choice when using Django in a commercial setup?
Hey everyone, I just came across this thread and thought I’d chime in with some of my experiences and thoughts. I’ve been tinkering with Django for a while now and experimenting with different databases. MongoDB can work with Django but it definitely comes with its own set of challenges, especially when it comes to migrations and the ORM directly interacting with a non-relational structure. I’ve seen people use projects like MongoEngine and Djongo, but I’m wondering how robust these integrations are in a full-fledged e-commerce environment. On the NoSQL side, CouchDB offers some intriguing features with its replication and conflict resolution, but I haven’t seen it used in a Django context as much – has anyone played around with that? Regarding web servers, I’ve flirted with both CherryPy and Tornado. CherryPy’s native SSL support is a plus, but I always get curious about the performance and scalability of Tornado in similar setups. Does Tornado’s asynchronous nature give it any edge when handling high concurrency in a commercial project, or is it more of a situation where traditional stacks tend to win out in terms of community support and stability? Would love to hear what others have experienced with these combinations – especially if you’ve managed to iron out some of Django’s quirks with NoSQL databases in a real-world e-commerce project. Cheers!
My experience with Django and MongoDB has shown that integrating the two is far from straightforward. Django’s ORM is designed with relational databases in mind, and while third-party tools like Djongo offer a bridging solution, I’ve encountered limitations in handling complex queries and ensuring data consistency in an e-commerce context. A pragmatic approach may involve separating concerns by handling non-relational data in microservices or using raw drivers where needed. Regarding web servers, I found that pairing Django with a dedicated server like Nginx for SSL termination and Gunicorn as an application server tends to yield a more robust, scalable production environment.