django 1.2 tutorials, books and resources? [closed] - django

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Where can I find learning resources for django 1.2? I'm new to django and web-programming.

I have started to learn django a couple of months ago so, I'll try to point out what helped me.
I started watching the series of screencasts on how to build a wiki
http://showmedo.com/videotutorials/video?name=1100000
which is pretty easy. If you like watching screencasts they're not bad.
The official tutorial as pointed out before is also good.
I then progressed reading the online book on django. While it is certainly a good reference, I wouldn't recommend it as a starting point though.
I think a better thing to do is to read the practical django projects book by James Benett, the django release manager. It shows you a bunch of best practices which you might overlook (I did) otherwise. It uses django 1.1 but I think most of the code works (sometimes critized in reviews on amazon).
One thing that escaped me for a while is the wealth of third-party django apps which really make your life a lot easier but are not official so they are usually not in official supporting documentation (all of the above).
I recommend you start using
South (for database changes)
immediately. Also consider start using
virtualenv and
pip (both for python package management)
right away. These facilitate package-management a lot and I think using these is considered best practices (I just had to clean up a easy_install-foobar'ed system and it's no fun). If you are interested in the best third-party apps for solving common problems in django check out the blog surfing in Kansas by django developer Eric Holscher. There is also a video from the recent djangocon.
Finally, if you are like me and wondering about the magic that django does, you might want to check out this blog post or this video (3hrs) (and slides) by James Bennett explaining the internals of django very well (I like the blog post better, but take your pick).
Also: I was unaware of the django-users mailing list, this is very helpful and - as far as django is concerned - much more active than stackoverflow.
Django is awesome! I really hope you like it ;)

What about the official tutorial?
http://docs.djangoproject.com/en/1.2/intro/tutorial01/

The online documentation is pretty good. And there's a tutorial for beginners.
http://docs.djangoproject.com/en/1.2/

This resource http://www.udemy.com/full-django-tutorial/ at Udemy can be good starting point.

There's also the djangobook covering the 1.x.x versions. http://www.djangobook.com/en/2.0/ That can be a good start.

Related

What is a good tutorial for Django other than the Django documentation? [duplicate]

This question already has answers here:
Closed 11 years ago.
What is a good tutorial for Django other than the Django documentation? I need a tutorial to get some expertise with Django.
I don't know your background, but I would have liked someone to have told me when I started with Django to go over the basics of programming for the web. It's quite different to programming normal desktop applications. I learned a lot of things the hard way. (Even simple things like HTTP/POST/GET, the difference between desktop patterns and web application patterns, etc.).
It's important to understand what Django is, and what it isn't. It might be a nice idea to try a very stripped down framework (like Flask for example) in tandem, as it will highlight the 'heavy lifting' Django takes care of. Django abstracts a lot of things meaning you don't have to worry about them. While this is great to start with (you don't have to worry about sessions, authentication, etc.) you will eventually find yourself having to come to terms with them.
Furthermore, I probably should have sat down and learned Python before diving in.
Once you have the basics, Django is quite straightforward; the easiest way is to attempt a simple starter project, that is, a blog, CMS or something similar.
I think you should check out The Django book (2.0). This is the perfect second tutorial as it covers much much more in the same fantastic documentation style. It's also green.
There's also this list of tutorials on the djangoproject.com wiki but it's kind of outdated.
Beyond the Django book, I just started building stuff and googled the problems I ran into.

Good open source django project for learning [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Can anyone suggest a good open source django project to learn django development.
A great resource is www.djangopackages.com, which lists a lot of the notable Django apps out there, including links to their respective repos, popularity ratings, etc..
Another way to find popular projects is directly on GitHub: https://github.com/search?q=django
Finally:
Awesome Django # https://github.com/wsvincent/awesome-django
Awesome Python # https://github.com/vinta/awesome-python
django-basic-apps is also a very good start to learn django and reusable apps. These apps are simple enough and code is well written.
If you're looking to learn the popular reusable app feature of Django I would suggest Pinax, and you also may want to look at Django-Mingus. I'm the author behind Mingus and I recently posted a list of the apps included in Mingus along with a description of how and why they are used. It maybe helpful in finding some projects you may want to use yourself. Here's a link: "The apps that power Django-Mingus"
There's also a ton of Django projects on Google Code, GitHub, and BitBucket. Just search for "django".
Django-CMS, mentioned above, and Fein-CMS are both good CMS projects to dive into, and the screencasts by Eric are terrific - I absolutely suggest any noob to Django watch all 13 of those screencasts.
I asked Malcolm Tredinnick a few weeks ago if there was a project he admired and he suggested Django Packages. They keep their source on Github .
I wouldn't say that it should be used as a Django tutorial but they have an admirable style of programming and I have picked up more than a few tips and tricks by reading their source. It is definitely a good example to learn from.
One of the best for newbie: 13 screencasts "Django From the Ground Up" at This Week In Django#
edit:
#the website is closed. view archived page.
I recommend Waka Waka. Its a very well written wiki, that should give you a good idea of how to develop in django. It is an application used by Pinax, which by itself should be huge, to learn.
You can also of course go through some of ubernostrum's code like Registration, profiles and Contact Form, which are a standard in the django world. But as some of them involve dynamic forms, it may be best to get to it, after a little actual coding.
If you're interested in running Django in App Engine, checkout out this project. Here's a demo.

History of Django's popularity [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What sequence of events made Django the most popular Python web framework .. and still so? Even though several other frameworks exist.
Note: This question is neither argumentative nor confrontational. I merely asked for (objective) "the sequence of events" that lead to its actual popularity. Being aware of the dynamics of software acceptance, I am not intending anyone to get into arguments over technical superiority.
Many Python web frameworks already existed when Django appeared in 2005 -- indeed, the joke was already going around, by then, that Python is "the language with more web frameworks than keywords" (and Guido rejected my proposal to fix that in Py3k by adding many, many more keywords). Now "django" per se is a bit ambiguous as a search term (it's also the name of a popular guitar player whose life inspired a Woody Allen movie, etc, etc), nevertheless adding "python" to the search to remove those other meanings you can see e.g. in this graph how its relative popularity changed in comparison to another classic Python web framework, Zope. Mostly steady growth quarter over quarter, with a huge surprising jump up at the start of Q2 2008... which just happens to coincide with the date in which Google announced App Engine (it's impossible to prove causation in such case, but the coincidence is at least interesting;-).
App Engine essentially rules out any Python web framework that deeply depends on custom C-coded components, or intrinsically require "heavily relational" functionality; out of those that run well with just pure Python code, Django is probably the one that App Engine most directly and visibly supports. However, this was just a boost, adding to Django's underlying healthy growth trend. The explanation for that trend (and indeed for App Engine team and users' decision to support Django so well) must lie in characteristics that are intrinsic to Django itself.
Django is sometimes criticized (including by... yours truly;-) for being "too magical" or "too monolithic", compared to alternatives such as Pylons, TurboGears, Werkzeug, &c, which are lighter-weight (esp. the latter, my favorite;-), more transparent, and allow easier swapping in and out of specific components (ORM, templating, &c). However, Django's popularity tells us that, for most people interested in developing server-side web sites and apps, these Django design choices are perceived positively: Django's seen as a very rich and well integrated framework (and it does have a lot of add-ons and contributed "plugins", but those are more a consequence than a cause of its ascendancy).
Ease of getting started, automagical "admin pages", and the like -- as well as the fact that Django can be bent to make really rich and complex sites/apps and accommodate peculiar or unique requirements, with much skill and some work -- are probably the "killer features". To use Werkzeug at its best, you need to understand HTTP, and WSGI, and pick and integrate your favorite storage and templating -- developers of Python-based web sites and apps (like, in a sense, users of Rails, or users of even-more-popular PHP!-) are "voting with their mindshare" for an environment in which they need not necessarily do any of that, but can mostly focus on their application domain. I will have to admit that they probably do have a point;-).
I think there were a few factors, the combination of which was greater than the sum of their individual weights.
One is simply timing: Django appeared right as the first big wave of Rails hype was ramping up, and so it was immediately portrayed as being sort of "Python's answer to Rails". That resulted in a not-insignificant number of eyeballs on the project almost from the start. The fact that Adrian was at the "Snakes and Rubies" meetup in Chicago and got to take part in side-by-side talks about Rails and Django did a lot for that.
Another factor is that Django is and always has been a single-package install (well, not quite: you still need a database adapter, unless you're on Python 2.5+ and using SQLite, but close enough). The non-Zope alternatives, which all focused on leaving component choices in the developer's hands, required quite a bit more work just to get to the point where you could do a basic tutorial: you'd need to go hunting down an ORM, a template language, etc., etc. and get them all installed and configured. Though that's gotten much better over the years, I think the lingering memory of that still has an effect.
And Django came out of the gate with documentation that (if I may say so myself) was far above the usual standard for open-source projects, and has only gotten better over time. The tutorial, for all its many faults, hits on a number of the high points that make Django useful, and the remainder of the documentation has always been of good quality, mixing both API reference and important "how to" bits as needed. This produces a good out-of-the-box experience and helps with the post-tutorial learning curve (something which has always plagued Zope).
I also think there's a perception -- rightly or wrongly -- that, say, Pylons or Werkzeug really are better for experienced developers who already know their way around WSGI and the Python web ecosystem; the fact that they tend to be strong choices for taking your existing favorite libraries and plugging them together is the source of this, I think, and perhaps nudges some newer folks over toward Django's integrated approach. The flip side, of course, is that a lot of people who'd be better off learning more up-front before trying Django don't do that ;)
Finally, I think there's something to be said for the way Django's been marketed, which is to say that it really wasn't marketed for a long time, or at least not in the sense that, say, Rails was marketed. Until Django 1.0 landed, the "marketing" effort mostly consisted of people blogging (and there were some notable incidents where people were asked to tone it down a bit), talks at PyCon and then mostly just improving the framework, building cool things with it and letting the results speak for themselves. Now, of course, in the post-1.0 world we have the DSF and DjangoCon and business-oriented consultants doing training sessions and lots of books and all the rest, but that's all still quite new.
I expect that there will be a backlash, just as there's been with Rails, and in fact I think it's been brewing for a while and has already started. But up until now I think the factors I've listed here are at least the major ones behind the consistent, steady growth in popularity Django has seen since its initial release.
I can think of three reasons for Django's popularity, only one of which has been addressed in other answers as far as I see:
Documentation. It's well structured, comprehensive, and approachable from a number of skill levels.
Design. The visual design of the admin, error pages and the project site are far above the level of design seen with most open source projects.
Community support. Starting with the team at World Online, Django picked up some influencial evangelists early on. I'm not sure you can over state the importance of blog posts like Jeff Croft's Django for Non-Developers (I think that was the title).
"My personal favorite, and I expect that that will remain a personal favorite for a long time, is something named Django" - Guido Van Rossum on FLOSS weekly episode 11, aired aug 4th 2006
[Click Here] (listen to last third of the interview)
Think this might have helped? or at least the reason why Google chose it for AppEngine?
of course, the django community (including devs) are doing alot of things right. For example (Some analysis in the links):
Improving modularity:
[Click Here]
kick ass documentation
Click Here
There is also something about the community that gets people to want to contribute which I've yet to put my finger on:
Click Here
Of course, all that lead to Django being an outlier:
Click Here
There is no question about Django's popularity.
In my case, I'd bought the TurboGears book, and struggled through its inconsistencies and haphazard route to explaining things.
Then I got the Django book, and voila! My first for-pay project was created while working my way through the sample project in the book. That plus the online documentation sealed the deal.
For me, it was simple: Documentation, documentation, documentation.
I noticed that it often got promoted as being the Ruby on Rails equivalent in Python. It's also has a connection to Google (Google hosts Django events, and supports it in their App Engine). A web framework being endorsed by Google has to amount for something. :)
At least for me, an important factor was that Simon Willison and Adrian Holovaty were already well known players in the "Web Standards" scene, as well as Jeff Croft later.
That wasn't only a quality seal, but also made Django very web-friendly, with its respect for HTTP, markup, and even the quick and dirty, "print debugging" way of working that people coming from PHP were used to.
I might be heavily wrong here, no data to back this up, but I feel that Django gained a lot more traction from people coming from PHP, as opposed to Rails which got a lot of conversions from Java/.NET.
As others already noted, the documentation is way above average. The best I've seen, as far as I recall.
The fact that there were several high volume sites already using Django (i.e. lawrence.com etc...) - even by the 0.96 days - helped me convince management it was safe to use. Things like Pylons and Turbogears really did not have that.
As for Django's popularity over time (the literal meaning of your question title, if not quite your actual question), have a look at the google trend.

Offline Web Application: Success Stories, Tips and Resources [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
We # medicware.com.br are thinking about making our web application offline-capable with Gears. Our main goal is to keep basic functionality running when the internet connection goes down.
So, I'd like to hear success stories, tips and resources about yours real experiences in that field (related to Gears or not).
Remember the Milk has done a nice job of using Gears -- you might see what you can find out about their implementation. I'd start at http://code.google.com/apis/gears/articles/take_app_offline.html.
Do you have to use Gears? I've used their AdWords API extensively, as well as Google Data, and the experiences left me lacking. Sure, things are reasonably well documented, but when it comes to support, there's no one you can call and real Google developer postings in forums are rare. They also are known for announcing cataclysmic changes with little notices, and, this is on paid products like AdWords.
I'd seriously look at Adobe Air. Adobe has worked with 3rd parties for years and they're pouring tons of money into doing Air right.
I've had good experiences with Adobe Air. It's not gears and it was nothing more than a look to see how it worked, but it was so simple that i'd think it would be easy to port any large scale application over.
There is a couple of video resources available:
Dion Almaers 50 minute presentation goes from overview/businesscase down into the actual code: quite helpful for understanding concepts and getting examples for actual implementation code.
Offline web apps with Google Gears
I recently saw "Google I/O 2008 - Taking Large-Scale Applications Offline". Good for grasping the concept but also very complex -- Googles problems are most likely not typical scaling problems. And there was no concrete code. Only some architectural strategies.
Also, if you need code examples, try "offline dojo" as well. Even though it's a screencast of Dojos offline wrapper, I think it's pretty helpful (and only 8 minutes short)
Dojo offline screencast, (overview on dojo offline homepage)
In my eager to answer your question, I just stumbled upon Google I/O 2009 - HTML5 Databases/Gears & Offline Web Apps, which i will see during lunch. Feedback on this yet, anyone?

Django Calendar Widget? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Does anyone know of any existing packages or libraries that can be used to build a calendar in a django app?
A quick google search reveals django-gencal, which looks like exactly what you need. It would also be worth looking at the snippets under the calendar tag on Django Snippets at http://www.djangosnippets.org/tags/calendar/.
It seems that django-calendar has become django-agenda: http://github.com/dokterbob/django-agenda
Great Tipps
django-swingtime lives on
http://github.com/dakrauth/django-swingtime
The django-schedule code originally from thauber (thauber/django-schedule) has been forked and worked into the glamkit/glamkit-eventtools code for Galleries, Libraries, Museums and Archives. It has also been forked and updated by a variety of other folks, e.g. boskee/django-schedule, and my guess is that that might have fewer dependencies and be easier to integrate into another project. It says:
Django-schedule: A calendaring/scheduling application, featuring:
one-time and recurring events
calendar exceptions (occurrences changed or cancelled)
occurrences accessible through Event API and Period API
relations of events to generic objects
ready to use, nice user interface
view day, week, month, three months and year
project sample which can be launched immediately and reused in your project
See the github "network" tab for a graphical navigation from the point of view of a given branch to see how other branches relate to it (i.e. what is available for merging).
svn checkout http://django-calendar.googlecode.com/svn/trunk/ django-calendar-read-only
svn: URL 'http://django-calendar.googlecode.com/svn/trunk' doesn't exist
so google search may reveal, but it's no longer exists.
There is another calendar alternative here, Django Event Calendar from 3captus, that offers something a bit simpler. I'm trying it out now, but it looks like a better fit for me.
From the features list:
Full feature calendar display using python calendar class
Support month scrolling (forward or backward)
AJAX add, modify, delete GUI
Require mimimum knowledge of Django, should be a good compliment after you are done with django tutorial
(http://www.djangoproject.com/documentation/tutorial01/)
Calendar and Event class can be used in any python project
Full unit test included
There are also some calendar functions built into Python itself, you can see a simple implementation here.
Today I ran into django-swingtime. Worth checking out.