Django-nonrel Status - django

Is Django-nonrel still active? I am interested on developing an e-commerce website that involves tons of catalogs and it seems like NoSQL is the best approach for this. I have background in Django but from what I found out, vanilla Django does not support NoSQL.
Enter the Django-nonrel as the alternative. However I am a bit concerned on the project continuity and community. Django-nonrel is a forked of Django 1.3, does this mean that it us outdated (since current Django is 1.5), or does it has its own circle and version after the fork?
In short, what is the status of Django-nonrel? Active?

This was recently discussed here:
http://www.reddit.com/r/django/comments/1cdrqs/using_mongodb_with_django_whats_the_status/
where the following stands out:
"It does not exist yet. And I'd strong recommend not using MongoDB unless you have a good use-case for it. Needing lots of reads/writes in some parts isn't enough to justify it IMO. MongoDB's read/write performance falls back down to earth once it's put in a real world scenario.
...
Disclaimer: I'm a dev working on a series of MongoDB apps that service hundreds of thousands of users and wish very much my predecessors just went with Postgres."

Yes it is, I am using for a year now and is working fine, the only downside, at least for me is that you can't do contains search.
If you want to change ideas please let me know.

django-nonrel is not active now, I´m testing the last version, it´s a django 1.6.11 fork
git+https://github.com/django-nonrel/django#nonrel-1.6
working with postgre and mongodb as DB engines simultaneously and it works

Related

Is djangoappengine (django-nonrel) production worthy?

I'm thinking of hosting an app on app engine, and I already started building it in native django. Is it crazy to use djangoappengine (django-nonrel) for a production product? Is it proven?
It seems to be available at least since 2010 and acknowledged by Google. So I'd say it's pretty solid.
django-appengine is widely used in production by companies such as Potato London, have a look at their porfolio, you'll find some pretty solid stuff.
You do need to realize that there are quite substancial diferences with a vanilla Django SQL installation, especially in the ORM, many complex queries will not be available as JOINs are not supported natively. There are workarounds for most problems but they're a bit harder to wrap your head around if you never used non-relational databases or Datastore.
Make sure you read the documentation on Datastore and the django-appengine DB documentation and judge if it's worth the trouble.
Also worth mention these two packages from AllButtonsPressed that help a lot dbindexer and nonrel-search.

django built-in support for MongoDB

I'm trying to find any information if official django is going to support any noSQL DBMS, especially MongoDB. I found a fork of django 1.3 the django-nonrel (a fork of official django) and some other not very reliable projects (failures occur often, according to comments I found on the web). Is django going to support noSQL officially at all?
Perhaps, there are other ways to achieve your goals, besides going noSQL.
In short, if you just need dynamic fields, you have other options. I have an extensive writeup about them in another answer:
Entity–attribute–value model (Django-eav)
PostgreSQL hstore (Django-hstore)
Dynamic models based on migrations (Django-mutant)
Yes, that's not exactly what you've asked for, but that's all that we've currently got.
As you said, forked code is never the best alternative: changes take longer to get into the fork, it might break things... And even with django-nonrel, is not really Django as you loose things like model inheritance, M2M... basically anything that will need to do a JOIN query behind the scenes.
Is Django going to support NoSQL? As far as I know, there's no plans on the roadmap for doing so in the short run. According to Russell Keith-Magee on his talk on PyCon Russia 2013, "NoSQL" is on the roadmap but in the long term, as well as SQLAlchemy. So if you wanna wait, is going to take a long time, I'm afraid.
Anyway, even if it's not ideal, you still can use Django but use something else as a ORM. Nothing stops you from use vanilla Django and something like MongoDB instead of Django ORM.

Learning django with "Django from the Ground Up": Outdated?

I've discovered this excelent series of video-tutorials, the "Django from the Ground Up", but as it was uploaded on 09/08 I was wondering if it's still worth going through it or I will teach me and "outdated" way of working with django.
What do you think?
thanks in advance,
Ignacio.
I haven't watched the video, but I suspect it's out of date.
If the tutorial is from 2008, then it's probably based on Django 1.0. As I write this is 2012, the latest version is Django 1.4.
Django is pretty good at not breaking things between versions, however there are changes you have to make to get a 1.0 project working in 1.4. If you're new to Django, you might end up wasting a lot of time struggling with the changes.
Although I personally don't know "Django from the Ground Up", I would not suggest using 2-3 year old tutorials about in-depth parts of Django.
A large part of Django is still the same (forms for example), but a lot of cool things have been added/modified in the Django ORM and Django Admin. So it really depends on what you're learning. If it's a simple part or just an initial look than it would probably be a good starting point.
If you want in-depth knowledge than you will need something more recent.
I think teamtreehouse has some django videos (though I have never seen them), but I would suggest you purchase the django book written by the django creators "The Definitive Guide to Django: Web Development Done Right". But be sure to get the second edition. You should also take a look at "http://harry.pythonanywhere.com/tutorial/1/" he has some very good tutorials you should work through. If however you really want videos try http://www.youtube.com/user/programmersbook he has has whole collection of django tutorials. The only downside on these is that the first 16 videos have no sound.
Anyway's good luck with django!

Using Neo4j and MongoDB together in a CPython framework

Well, here is my problem, I'll make an e-commerce project for my thesis, I'll make it using Django, and I wanna use NoSql solution, since I'll imagine that this e-commerce website will grow (...) the idea of that website is a social-e-commerce without money transactions, I'll use two solutions: MongoDB to store users information (since it's a schema-free) and Neo4j to make relations between users.
Ok, maybe someone will say: why not using Neo4j to handle everything since Neo4j is also a schema-free, but because it's Django, so I said that something that is a C-program will be better and faster for the web application than a 100% Java solution (when dealing with C-Django), I'll use CPython and not Jython, and I've installed JPype, so I imagine that calling Java from Python is something that will take time?
So my question is:
is it better to use that solution: _id123456789012 is a (friend/best client/best seller...) with _id122234567890 as you can see the _id is generated from mongodb (the harder work) but only the relations are made using neo4j, so all the 80% of the work is done from mongoDB, or do i make everything with one of them: neo4j or mongo?
second, if the solution of using both, how about scaling? from the graph that speaks about NoSql it seems that Neo4j is the latest in Scaling in size (while the best in Scaling in complexity) so will there a problem of "synchronizing"?
It looks like the question has been answered in the comments, so I'm providing this answer to allow the question to show up as being answered.

Django or Zope?

I want to create a website and I am confused which web framework to use. Please recommend me which framework is better: Django or Zope. I am using Python.
If you mean plain Zope2 by zope then I'd go for Django. Most interesting stuff in the Zope world takes place with either Plone or Grok (which is Zope3, which is actually quite different from Zope2).
Grok works nice with relational databases, Plone doesn't really, so if you depend on an RDBMS, either go with Grok or Django.
Zope and Plone have a rather steep learning curve so you'll get started more quickly with Django.
The largest downside about Django is, in my opinion, that it tries do do everything by itself (templating, object publishing, ORM, and so on) while there are many excellent existing components out there. If you want to be able to use your code / knowledge outside of the web framework you're using, consider Pylons or BFG
Many options, no clear answer, sorry :)
I have no idea what sort of website you're trying to create, so it's hard to recommend a specific framework.
I'd recommend getting through some tutorials to see which one you like best (There's also pylons and TurboGears to pick from).
Django seems to be the most popular starting kit these days though.
If your website is very hierarchical and needs fine grained permissions, I'd use Zope. (Don't use Zope if you intend to store your data almost exclusively in an SQL database.)
If you have large datasets that can be put into (sql)tables and need many forms, I'd use Django. (Don't use Django if you need very fine grained access control, and hierarchical data)
You see: both have their weaknesses and strengths (although I am only developing in Django these days. The Zope community seems to be a bit in dispute these days about the way it should develop)
Zope is dead. As is TurboGears, Pylons, BFG, Repoze, CherryPy etc.
Active and popular Python web frameworks include:
* django
* flask
* bottle
Big, medium and small. Take your pick.
Here is a good comparison of Django and Zope (and Rails)
http://cd-docdb.fnal.gov/cgi-bin/RetrieveFile?docid=2715;filename=Comparison.html;version=3
They preferred Django. I, personally, use Django too, so I don't know much about Zope.
Another good thing about Django is that they have very good documentation (though I don't know that of Zope). Many people praise that very much.
Also I found Django quite easy to use, and also they have a ready 'administrator panel', which allows quick web-oriented site management from the first steps. More important for me, however, is its fine integration with python and the simple organisation (in the link above they complained that Zope uses very much of its own features, while Django is closer to pure Python).
If you are starting from scratch I will suggest you should go for Django. You will get lots of features and suppost from django. Easy to debug and best suited for rapid developement. In the other hand, You should only choose Zope, if you have experienced developers familiar with Zope or have existing projects based on Zope and the cost of switching is too high for the potential value gain.
In zope's website it self it is written, It is no longer recommended to start new projects based on it, unless you are intimately familiar with the technology stack.