Django

#slider
#adsense

Django - Yahoo News Search Results

‘Suspiria’ TV Series in Development; ‘Django’ Also Coming to Small Screen

The Suspiria film remake may be dead, but that doesn’t mean you can keep a coven of witches down. There’s now a Suspiria TV series in development out of Europe, with original writer/director Dario Argento on board as “artistic consultant.” But you’re probably not expecting precisely this plan for the TV version of Argento’s film […] The post ‘Suspiria’ TV Series in Development; ‘Django’ Also ...

‘Django’, ‘Suspiria De Profundis’ Series In Works From Atlantique & Cattleya

France’s Atlantique Productions and Italy’s Cattleya have entered a co-development and co-production agreement to fashion English-language drama series out of Sergio Corbucci’s 1966 Western Django and Thomas De Quincey’s 1845 psychological fantasy essays Suspiria De Profundis . Django , to which Quentin Tarantino paid homage in his 2012 Oscar-winning Django Unchained , is positioned as a re ...

Django Girls make the male-dominated world of IT more accessible to women

An announcement regarding a Django Girls meeting at Hackerspace in the Athens neighborhood of Aghios Eleftherios on Saturday sounded more like a pop group fan club’s get-together than an event addressing a socially and economically challenging issue: the employment of women in today’s dynamic industries of information technology and telecommunications.

Django Django: ‘After our first album, everything went nuts’

Django Django’s first record propelled them from back-room gigs to the top of festival bills. How did they escape second-album syndrome? The last time Django Django talked to the Guardian, towards the end of 2011, they were preparing to release their debut album – a tuneful but experimental mix of psychedelia, folk and the sound of coconut shells being bashed together to make a noise like ...

Delicious/tag/Django

recent bookmarks tagged Django

jzdz.me

Posted on 2 April 2015

Guía definitiva Django 1.8 en Español - Pythonízame

Posted on 31 March 2015

ATP_Performance_Test/middleware.py at master · tkopczuk/ATP_Performance_Test

Posted on 31 March 2015

utrust.rlujo.co

Posted on 28 March 2015

www.flickr.com

Posted on 24 March 2015

careers.stackoverflow.com

Posted on 24 March 2015

www.jwt.com

Posted on 24 March 2015

www.youtube.com

Posted on 24 March 2015

docs.djangoproject.com

Posted on 24 March 2015

form.errors.as

Posted on 24 March 2015

Top Answers About Django (web framework) on Quora

Top Answers About Django (web framework) on Quora

Has Twitter (product) made Ruby on Rails overrated as compared to Django?


"Python is much more powerful than Rails".

First of all, let me start with the obvious: Python is a language, Rails is a web framework. You probably meant that "Python is much more powerful than Ruby", which is the language used to implement Rails. Many beginners make this same mistake.

The first answer: no, it is not. They are cousin languages. Ruby came a couple of years after Python. They have different philosophical roots (Python as ABC-made-right and Ruby as Smalltalk-married-Lisp-cheated-with-Perl). For a many years Python was much faster than Ruby, by an order of magnitude. The gap is negligible, at best, nowadays. Ruby 2.2 is very close to Python 3.4, even surpassing it.

Django and Rails diverged a lot over the years. They actually started differently, Django came from a content-oriented background, Rails came from a post-Dotcom Bubble New Generation of UX-oriented Web Products. This is the Apple-oriented product design and Agile Practioners safe heaven.

Twitter did not "overrate" Rails "compared" to Django. Twitter bet on Rails to make their platform evolve fast with the cutting edge of Web technologies of the time. Quickly pivoting from a microblog platform to a message hub. After they became a big corporation they did what any corporation MUST do: invest in heavier, and much more specific, tech. Which is the reason they stared ADDING (not simply "replacing") stuff such as Scala (which is a much better concurrent language than BOTH Ruby AND Python).

In summary: Python is not "much" more powerful than Ruby. And no, no big company ever regretted using Rails to bootstrap its business to the point of getting those big, fat, Series A investment round.

See Questions On Quora

Posted on 22 July 2015

Does Django lend itself to different type of projects than Rails?


Django lends itself well to projects that already use lots of Python.



Python's main strengths lie in its great support for math and machine-learning. No other language has access to libraries like NumPy, SciPy and the Natural Language Toolkit.

If you're building a web application that will specifically take advantage of these libraries, than using Django will save you the trouble of involving other back-end languages.


Django seems to scale well enough to support moderately high-traffic websites like HackerEarth.

While Rails and Node.js are under more active development, Django is still a solid choice for a Python codebase.



See Questions On Quora

Posted on 29 June 2015

Why is there a recent trend away from PHP towards Python and Ruby on Rails?


My team Nascenia (http://www.nascenia.com) is a Ruby on Rails expert team. Here are two key reasons why clients are moving from PHP to Ruby on Rails

Structured and Fast Development Development
Ruby on Rails structures overall development process. It follows three development principles that simplifies web application development. Its Model-View-Controller principle structures the application in files and directories. Its Convention over Configuration principle aims to reduce time and effort taken by a developer to develop and application. Conventions keep the code clean and provide an easy way to navigate through the application. Don't Repeat Principles reduces code repetition as much as possible so that it becomes easy to make any modification in the development cycle. I have talked about these principles in details at Nascenia blog. You can check it out here: The Design Principles of Ruby on Rails | Nascenia
 
Structured development also speeds up development process. This is especially helpful for start ups who are often in need of quickly developing an MVP so that they can raise more capital. Thats why you will often see startups going for Ruby on Rails framework. I have written a blog on top 8 sites which were built with Ruby on Rails. You can check out the blog here Ruby on Rails Websites | Nascenia

One framework to rule them all
Rails is the framework that dominates Ruby. If you are going for Ruby you will most probably find developers who are accustomed with Rails. PHP has multiple frameworks with very similar market share. Here is a quick look at different frameworks for PHP
Laravel, Phalcon, Symfony2, CodeIgniter and others have their pros and cons. It increases research time, recruitment time and also therefore, development time of the application.

These do not make PHP an essentially bad or out of date language. Clients who make business decisions often want a simple technology framework that can be incorporate all their requirements, deliver high quality within limited time and resources.  Ruby on Rails is open source and has strong community support. It delivers exactly what clients want.

These are the reasons why our clients prefer Ruby on Rails now a days. Since my team does not develop in Python, I do not have enough first hand experience why clients are moving from PHP to Python.

See Questions On Quora

Posted on 2 June 2015

Why would full-stack web developers learn Python or Ruby or (insert other back-end language) instead of JavaScript?


Every good web developer ultimately has to master JavaScript


Here are the most popular technologies for all developers (not just web developers) according to Stack Overflow's 2015 survey of 26,000 developers:


Here are the advantages of other high level scripting languages:

Ruby

  • has Rails, a good web development framework for small and medium-sized projects.
  • has Sinatra, a light weight tool that can be used for building APIs.
  • has Pry, a first-rate debugging REPL.

Python

  • has great math and science libraries.
  • has Django, a good web development framework for small and medium-sized projects.
  • is useful for Machine Learning.

PHP

  • powers Wordpress, which powers a significant portion of all blogs and ecommerce sites.
  • has a lot of quick-and-dirty scripts you can paste directly into a website.
  • has a lot of developers in India and China that you can contract out to help you with your project.

Now that we've discussed the alternatives, let's talk about the lingua franca of the internet:

JavaScript

  • is the only language that runs in all browsers (and the only full stack language).
  • is significantly faster than these other scripting languages (in part because it allows for asynchronous programming).
  • is undergoing major investment of money and talent from companies like Google, Facebook and even Microsoft, and thus is constantly improving.
  • has Node.js, which is used from everything from embedded devices (Internet of Things tech) to major APIs (Netflix).
  • has Angular.js and React.js, which represent the future of single page applications (which represent the future of web development).
  • is the first language that major SDKs and libraries are written for. These are then (maybe eventually) ported over to Ruby, Python and PHP.
  • is used by major databases like MongoDB as a more flexible replacement for SQL. Some of these databases opt to store everything in JSON.
  • pays more than all of these other scripting languages and frameworks, and has more job openings and a faster rate of job opening growth.



There are still plenty of web development programs (college programs, coding bootcamps) that teach high level scripting languages other than JavaScript. Why, indeed.

See Questions On Quora

Posted on 24 May 2015

Should I use PHP, Python (Django) or Ruby (on Rails) to build a dynamic website?


You should use Ruby on Rails to build dynamic website. Here is why:
  1. Speed of development: Ruby on Rails has a fast development cycle. It is built for speed. After the initial discussion and mockup preparation, developers can start building high class software. Guided by principles (The Design Principles of Ruby on Rails | Nascenia) Ruby on Rails encourages developers to stick with convention and code a clean and high quality application. This is especially helpful for startups who do need fast development of an MVP to raise funds.
  2. Fast update cycle: Ruby on Rails is the most modern framework compared to other frameworks of Python and PHP. The people behind the framework are continuously working to make sure developers get the modern tools to build application. The nature of the web is such that it quickly adopts modern tools and if you do not keep up, you lag behind fast. RoR makes sure you stay up to date with dynamism of the web.
  3. Large community support: There is a vibrant Ruby on Rails community that makes sure you have all the desired features and functionalities. These community plugin are known are called "Gems" and these are meant to enrich your product.
I can vouch for RoR because my team Nascenia (http://www.nascenia.com) is a Ruby on Rails expert team and one of the largest in South Asia. It has developed 51 projects for clients from 12 different countries, including USA, Canada, Netherland, Switzerland, Denmark, Norway and Africa. The 32 expert RoR team provides comprehensive solution such as storyboarding, wireframe and mockup preparation, coding, testing and continuous feature addition. One of our favorite is http://www.snapknot.com, a website we built for our boston based client. From our experience, we have learnt that clients want a fast development of high class application that includes all the desired features. Ruby on Rails provides just that.

See Questions On Quora

Posted on 3 March 2015

What is the best Python web app framework? And why?


Speaking of web framework is a very complicated topic, start saying that there is no silver bullet, nor in Python and much less in other technology!

I like a lot of Bottle (web framework), is a simple and straightforward framework! But I understand that in many cases flask would be better (because there is a greater community) and have the Django a full stack.

Sorry for replying after so many years.

See Questions On Quora

Posted on 1 March 2015

Why should I learn Ruby on Rails instead of Django or Laravel? Why not?


(Note: There is more information including a list of reading material in the comments)

It's all well and good to suggest that someone should just learn everything.

But, once you learn a framework or two then you should be able to pick up others very quickly because they mostly pivot around the same groups of ideas. Languages on the other hand force you to think differently about similar problems, in this way you get more value.

Frameworks are generic solutions to problems. Consequently, you get both more and less than you need and then you spend your time working with solutions that solve for your problems clumsily (see: Ruby on Rails ActiveRecord). In this culture, ActiveRecord is seen as a great boon. However, it twists the applications around them in undesirable ways. This is something that they do not tell you going into it. You're supposed to be sold on how easy it is to interact with the database etc. But, you're never told that ActiveRecord is a poor fit for almost everything except for CRUD.

Frameworks are good and fine. But, you don't want to be locked into them. Use them where they make sense (agency work, for example). But, beware that they are very opinionated and probability rests with the fact that by using them you're making many compromises that will complicate your development. They DO provide a way to get started and an initial speed boost.

I'm not suggesting that you write everything from scratch (probably would be more enlightening than learning Ruby on Rails, though). But, I think that putting together your own application based on libraries that you bootstrap together can have a lot of value.

Beware the framework-only crowd telling you that you don't want to reinvent the wheel or that you couldn't do as good a job. This is due to their specific stages of development and what they CURRENTLY know that gives them the best chances of accomplishing their goals.

Unless you can get past seeing through the 'framework filter' you'll be designing your solutions around what the framework gives you and what the community tells you. Ideally, you'll get past that point and be able to do better for yourself than any single framework could. It's quite possible to use a framework as a base and simply avoid using aspects of it (like ActiveRecord), bringing in your own libraries to better handle your needs.

Learning general knowledge concepts such as object-oriented modeling, functional programming, persistence patterns, etc has far more value than just learning more languages. Learning new languages will have far more benefit than just learning more libraries and frameworks. The value of learning frameworks is something that passes by very quickly, leaving you with little long-term benefit to show for it.

When buying books, consider avoiding books that teach specific technologies (EmberJS) and consider focusing on general knowledge pursuits by purchasing books with timeless value (Clean Code, Refactoring, GOOS Book).

Filling up on a bunch of timeless knowledge will be significantly more valuable than "Tricks of PHP 5.3".

If you want to just be able to build something quickly, then choose any of the technologies listed. If you want to open your eyes to new perspectives, focus on doing exactly that and avoid focusing on tooling.

See Questions On Quora

Posted on 22 November 2014

Why is there a recent trend away from PHP towards Python and Ruby on Rails?


Ruby on Rails is a Ruby framework. So if you want do a real comparison, compare PHP frameworks with Ruby frameworks.

I have to disagree with the ones saying that "RoR is far faster than PHP" or problems of deployment. I've seen site running with Symofyn2 with great scalability. If there is any PHP based site why don't handle a large audience, it's just that it has been developed in a wrong way.

The for the time of development, it depends of how much you mastered the language. Saying that you develop 30-40% faster in Ruby than in PHP (with a framework) is an overstatement. Development on Symfony2 is as fast as development on Ruby on Rails.

As for the compatibility problems, recent PHP frameworks handles as much different databases as Ruby.

So, no major speed differences, around the same level of development and databases compatibility, same level of scalability.

So why the change ? Well mostly because Python and Ruby (generaly speaking, with frameworks or not) presents a different way of coding. So in short, it comes down to how you prefer to code. PHP has quite the bad reputation there, and I fully agree with it although it changes a lot with frameworks (take a look at Laravel4 syntax). And mainly because nobody want to agree on only one thing. There will always be people for whom, PHP with frameworks or not sucks or is not for them.

Also you should mention JavaScript. With the apparition of node.js, it's popularity is increasing really fast because it becomes now a server-side language and is going under great changes (check ECMAScript 6) to integrate some Object Oriented Programming natively (which is possible today, but it's quite an hassle).

See Questions On Quora

Posted on 24 August 2014

What is the one thing that you wish you knew about Django framework early?


1 thing? ..... How about 11:

https://medium.com/cs-math/11-th...

text from the article:

I started SocialQ and Math & Pencil just about two years ago. Before I started the companies, I had almost zero web development experience (I’m a data guy) - I started a company learning HTTP, Javascript, AJAX, and Django MVC from scratch. It’s been a wild ride, and our technology stack has since matured to using interesting technologies such as D3.js, Backbone.js, Celery, Mongo, Redis, and a bunch of other stuff - but it didnt happen over night. Looking at the thousands of lines of Django code everyday, I thought it would be worth pointing out things I wish I did differently:
http://...

1.Start off with the right directory structure: Starting off, I looked at a few different open-source projects for guidence ([1] and [2]), read a few blogs, but never had good idea on the best way to setup a Django project. Here is what I am currently using:
http://...
http://...The apps directory stores all of your customized django apps and thevendor directory stores any apps you do not want to install (or can’t install) using pip or easy_install. The bin directory stores all bash scripts that help you automate your development. I have scripts in here that deploy to staging & production servers, clean up directories, compress assets, backup databases, start/stop celery (locally), etc. The config directory stores all of your configuration files for databases, webservers, munin, celery, supervisor, etc. The media directory stores all static assets such as javascript, css, images, fonts, etc.The template directory stores all the html templates that make your site beautiful. Finally, the static directory is where your compressed assets get dumped into for production. I even created a template for you on github,go star it!
http://...

2. Use Celery for asynchronous tasks AND cron jobs (no need to use unix crontab): The first two weeks of development you might not need to shove something into an asynchronous process, but when your non-technical co-founder starts asking why the site is hanging, it’s time to bust out celery (there are other options if you need something more lightweight). Any call that doesn’t need to be synchronous can be queued up and eventually consumed by a celery worker. I recommend using redis as a celery backend (see below) - do not waste your time with RabbitMQ unless you have a good reason to. I use celery for all sorts of tasks from sending out emails to pulling data from the Facebook API. Another intersting use of celery is you can setup periodic tasks to act as a cronjob. When I first started developing SocialQ, I was using UNIX crontab but have since moved everything into celery.
http://...

3. Use Gunicorn instead of Apache for your webserver: I know - Apache is battle-tested and all (plus it got a lot of love in The World Is Flat), but two years ago, when I didnt know shit, it was pretty complicated to setup. I just wanted to get a website up and running and forgot about a print statement in my code - whoops— that took down my site with a 500. Apache has a large set configurations that are time consuming to understand.Gunicorn isvery simple and gets the job done. Huge sites are using it too, at scale, so if you just created the next Instagram, you know you’re servers are not going to fail you[1]
http://...Update: This assumes NGINX is managing all incoming requests and serving static content.
http://...

4. Don’t be afraid of using MongoDB as your primary data store: There is a lot of hate floating around Hacker News when someone starts talking about MongoDB. I am not gonna sit here and act like it’s the pancea for all web storage problems, but I will tell you what it is good for - fast iteration.South does a nice job with RDBMS migrations, but migrations seem a bit easier in Mongo (see $set and $unset). Two years ago, things were different and Mongo was much less mature — but since then 10gen has added the aggregation framework, full-text search, collection-level locking, etc. I am glad I started with Mongo and it will continue to be my primary datastore.Mongoengine works great with Django, and if you need more control, you can jump down into pymongo. A lot of other big companies love MongoDBtoo:
http://...

5. Use named URLs, reverse, and the url template tag: This one seems dumb, I know, but man - I wish I knew about reverse when I started. Do yourself a favor and name all of your urls, and only refer to them by name in both templates using the url template tag and using reverse in the backend. It will potentially save you a lot of time in the future because nothing will be hard-coded and one url change will not break the site and unit tests.
http://...

6. Get your settings.py file right: There has been a lot of discussion about what is the right approach to Django settings. You can read about these discussions here and here. Personally, I like adding local_settings.py to my top-level directory and then importing it at the bottom of my settings file, overriding any variables declared above it in settings.py. My method works well for me, but you should definitely figure out how do separate development, staging, and production level settings.
http://...

7. Use supervisor for process monitoring: If you havnt heard of supervisor yet, and you are deploying to a unix-based machine, go here and start reading. Supervisor will control all of your processes for you. You just need to add a separate configuration file for each process. If the process goes down, supervisor will bring it back up. Examples of supervisor processes: Celery-beat, celery, gunicorn, statds, mongodb etc.
http://...

8. Pick the right AJAX/JSON mechanism: Unless you want to do a full page reload with every HTTP request (which is completely ok, but SO 1995) you are going to want to send some data to the server using AJAX. The problem you will quickly hit is Django does not have a built in JSON HTTP response, so you are going to have to either man up and roll your own (good luck) or copy someone else smarter than you (this is what I did). Here is adecorator that works great, and this response is superb also:
http://...

9. Use Redis - because it will eventually be your best friend: As I suggested above, at the beginning, Redis can just be used to queue yourcelery jobs. Later on, when the time comes you can store your sessions to redis. Then, you can use redis as a cache. Then you can use redis for auto-completion. Then …. I rest my case - just use Redis!
http://...

10.Use munin and statds for process monitoring. Munin lets you make nice graphs of almost anything, statds lets you time or count (increment) anything. Add these to your project as soon as possible and monitor everything. You can easily write your own munin plugins in Python to monitor just about everything.
http://...

11.Use jammit for static asset compression. Jammit came out ofdocumentcloud, and even though it was built for Ruby on Rails you can do something like this and use it for Django pretty easily. One of the things I like about it is you can setup different named configurations for javascript and css for different sections of your site (dashboard, non-authenticated, standard). It supports lots of other stuff too.

See Questions On Quora

Posted on 8 July 2014

How do I get started with web development using Django?


Like other people have said, there's lots of ground to cover. This can be daunting, but never forget that it's absolutely possible to do.

Below is a longer answer about what I've found to be most helpful, but having thought about things for a bit, a resource that pretty much includes everything I suggest below, and that I heartily recommend is Practical Python Training (http://realpython.com). They have a three-part course that starts you from learning Python and goes all the way through test-driven development with Django. In going through the course you learn quite a few of the things I suggest below, with the added benefit of not having the ideas presented piecemeal.

With that being said, if you don't want to spend the $60 (or less, if you can find a coupon) on Real Python, here is what I'd suggest you do:

  1. Make sure your Python is solid. To do this, first try out newcoder.io. If you can work through those tutorials without any problem and they all make sense, you'll have learned some useful tools and can go on to step two.
    If that gave you a really hard time, work through a free resource like How To Think Like A Computer Scientist or Dive Into Python to round out the rough edges in your Python knowledge. You don't have to do it all, just work through and see what your sticking points are.
  2. You need to know the basics of HTML & CSS (and maybe some JS/jQuery) before moving on. Seriously, just the basics of HTML will do at first, but why not take the time to do the codecademy HTML & CSS classes. I like Head First HTML and CSS, which will break things down for you. (Head First have also published Head First JavaScript Programming, though people seem to like How to Learn JavaScript Properly…I think that might be overkill when you're getting started.)
  3. Next, do the Django tutorial. Work through it once, then do it again, changing all the names to your own. Tango With Django (http://www.tangowithdjango.com/) used to be a great resource to go through at the same time you did the official tutorial, but Tango's starting to get long in the tooth. Once it's updated to 1.7, I'd recommend going through it at the same time you do the tutorial.
  4. Test-Driven Development with Python is a forthcoming book on Django development from O'Reilly that is available online for free. It's excellent.
  5. If you're unsure about all the database stuff, Head First SQL: Your Brain on SQL made lots of sense to me.

Use those resources and you can get started on web development. Yes, it's a lot of stuff. Don't let that get you down – other people have been where you are and have become awesome webdevs. Break the knowledge up into chunks and get started. While learning, be sure to:
  1. Set aside time every day for learning. By 'learning' I mean sitting down to learn about something new and then trying to use it. Reading a bunch of Python/webdev/django/whatever articles doesn't count. You have to be doing as well as reading/watching.
  2. Set aside time every day for coding. This means doing work with 'old knowledge' in addition to whatever you're learning. Find coding challenges (like codingbat and reddit's /r/dailyprogrammer) or try making things you want to do. Keep on iterating over what you've already learned. It's like any other skill, you have to keep practicing it.
  3. Take notes on paper. Writing notes down helps you to better remember.
  4. Keep a learning journal. Each day, write down what you learned, why you learned it, and what the use of it is. Yes, this is a schlep to do, but it pays off.
  5. Don't get distracted by options. There are a million different websites with a million different factoids about Python web development. Don't get distracted. Stay focused on learning and practicing – doing so is much more useful (but also much more difficult) than reading about programming

Good luck and work hard!

See Questions On Quora

Posted on 14 June 2014

Would Pinterest consider Flask in place of Django if it were starting today?


I'm sure we would at least consider Flask, given that we do use it now for our API, which powers more than half the traffic that Pinterest serves. It's very lightweight and easy to set up and scales reasonably well.

Plus, one of our first key architectural decisions was to split out a database service to handle all reads/writes to MySQL, which if repeated would make the database management abstractions in the choice of web framework much less of a consideration.

For what it's worth, we hardly use Django for much in our web stack now, besides the middleware (authentication, logging, etc.). Aside from migrating off the ORM years ago, we've written our own routing and generally don't use handlers in the Django pattern. So it hasn't really passed the test of time and a growing codebase and engineering team.

See Questions On Quora

Posted on 17 February 2014

Why is Ruby/Rails or Python/Django better than PHP?


First, as others have said, you either want to compare -

- Python/Django vs. Ruby/Rails vs. PHP/Insert PHP Framework

OR

- Python vs Ruby vs PHP

Second, it's all a matter of opinion. Each language and framework have different strengths and weaknesses. In my opinion, PHP is a good language to learn as many sites are still backed by PHP. Python, meanwhile, is a very practical language as it's popular not only in web development but data visualization, data analysis, statistics, etc. Ruby is very popular within the startup community, but it's popularity is starting to stagnate.

Python, in my opinion, is a versatile language that is popular and forces you to write readable code.

If you are interested in learning the Python syntax as well as some of the many frameworks, check out Real Python. Note: I am the author. Feel free to email me with any questions.

Hope that helps!

See Questions On Quora

Posted on 5 January 2014

Is it better to create your own framework, or would it be best to just use Django or something like that?


You should absolutely use an existing framework such as Django rather than writing your own.

Doing so will let you work faster, and take advantage of code written by others. This will dramatically increase your chances of building a successful website as opposed to spending months tinkering with your own framework rather than solving the unique problems that make your website interesting.

If your site is a big success, you'll be able to scale Django to meet your demands. There are plenty of huge sites running on Django - such as Pinterest, Instagram, Eventbrite and Disqus. They all end up having their own customisations for scale but that doesn't mean that they didn't benefit enormously from using an existing framework rather thank rolling their own from scratch.

Concentrate on getting to a point where your site is so successful that it causes problems. Those are good problems to have!

See Questions On Quora

Posted on 1 November 2013

I want to learn to code Python and Django (web framework). What's the best way to start for a programming newbie?


First download MacPorts or HomeBrew ( I suggest MacPorts). These two products are package managers, and will save you a ton of work.

Next use the package manager to install python (sudo port install python2.7). Work through Learn Python The Hard Way. This will give you a good understanding of Python.

Now work through Writing your first Django app, part 1, all the parts of it. This will get you up and running in Django, and you will learn how to write a basic Django app.

Now try something harder: The Django Book. This page supports up to Django 1.4, so use 1.4 for it. Most of it will be translatable to 1.5. The book uses a tutorial structure, so you will build a small app while learning all the neat things Django can do.

I would recommend Python as the best place to start. Its a quick, syntasically easy language. Start with learning Python; learn what the differences between 2.X and 3.X are, learn about PEP8, write some Python. Understand imports, understand where Python imports stuff from, learn about PIP and how to get new packages. LEARN TO USE virtualenv; this is an absolute must!!! It will make your life 100 times easier.

As for software. Find a good editor you like. A lot of people like Sublime Text 2. I prefer Vim+tmux, but that might be to much at once if you are not used to editing. You will need a decent amount of time, don't expect to become a master in a few days. Django can sometimes be infuriating, but don't give up, the reward is well worth it. You can probably work through Learn Python The Hard Way in a day or two; then you can start writting basic python apps. The Django tutorial should only take an hour or two; then you can start running basic Django Apps. Now the Django book might take longer, it's pretty lengthy, but it goes over everything.

If you have any other questions feel free to ask.

See Questions On Quora

Posted on 10 October 2013

What are the best ways to improve Django performance?


  • Cache your views when possible using Django's internal cache Django’s cache framework.
  • Cache your queries using django-cacheops by now is the best I have used and it's compatible with Django 1.5 (it uses Redis). *
  • Use djcelery with Celery: Distributed Task Queue for every task that can be delayed (i.e. sending an activation email).
  • In production use nginx as reverse proxy with Deploying Gunicorn I am using Gunicorn after running some benchmarks with UWSGI, Gunicorn won and it is really easy to setup compared to UWSGI!
  • Use Gunicorn with greenlet/gevent (this requires libevent installed on your system).
  • Stay away from the dbms whenever possible, one thing I learned using Django is that the main thing that slows really down your application is the database. Scaling at application level really helps.
  • If you are going to use Postgresql use Autocommit = True in your settings and keep in mind that the upcoming version of Django (1.6) will support connection pooling with psql.
  • You can debug your application and see what is slowing down the app with django-debug-toolbar one of the best tool I've ever used. You can see SQL Queries in every view.

EDIT:
* I saw major improvements using johnny-cache instead of cacheops, by the way this is strictly a personal choice. You should try and see what is better suited for your app.

See Questions On Quora

Posted on 28 September 2013

What is the one thing that you wish you knew about Django framework early?


Middleware! I was having a problem in an app where I needed to pass a specific header when the incoming request was coming from IE, and before I knew about middleware I wrote an "examine_request_source()" function that would set a flag, which would be read by a custom render() method and dealt with appropriately. The equivalent code in middleware was about 5 lines, and didn't muddy up any of the rest of the code.

See Questions On Quora

Posted on 9 August 2013

Why is there a recent trend away from PHP towards Python and Ruby on Rails?


An addition to the already mentioned low average quality of PHP codes (which is probably/likely related to its simplicity) PHP sites are tend to be much slower and having higher requirements than for example Python.

With Amazon's AWS and other VPS providers tend to focus CPU on resources like CPU time, memory usage, IOPS more and more and not just storage space like it used to be. Having the same site running faster and with lower usage will save a lot of money. With Python/Django people are able to serve order of magnitudes more visitors on the same server instance(s).

In short term PHP can be efficient and cheap (developers are cheaper too) but in the long run Python/Ruby saves time/money and bring more visitors/customers so at the and money.

Long story short getting more money with spending less is the main benefit from the company's perspective.

See Questions On Quora

Posted on 7 May 2013

Ruby on Rails vs Django?


I've been doing both in parallel (half time in a Django project, half in a Rails project) for several years now.  What you can do in one, you can do pretty much as easily in the other.

The biggest real differences are:
  1. Ruby values expressiveness and therefore provides lots of implicit behavior, whereas Python values explicitness and therefore can be more verbose.  This same dichotomy is also present in Rails vs. Django.
  2. Rails embraces change, while Django embraces stability (and I don't mean to imply that Rails is not stable -- stability here is stability of APIs in Django).  Which means that you get lots of new stuff with each Rails release, which come more frequently, while with Django you get a longer release cycle (historically) but have stronger backwards compatibility.

Ultimately the choice of which to use is entirely personal and subjective.  Either one is great and will allow you to get stuff done.

See Questions On Quora

Posted on 27 March 2013

Why is there a recent trend away from PHP towards Python and Ruby on Rails?


The advantage of Ruby on rails is that it's compatible with all known variants of web servers and databases. But the main merit of this technology is that it allows developing web site 30-40% faster in comparison with PHP due to numerous libraries and code. There are much more pros in this technology, you can look through Ruby on Rails prop following this link.

See Questions On Quora

Posted on 20 March 2013

Which framework (Django, RoR, etc) is best for building an ecommerce site?


I'd have to agree with Osama Khan - Based on pure research alone, my vote goes to Magento. Let me preface my endorsement by saying that I'm currently doing research to solve my own eCommerce problems as I do not yet have a system in place.

Nonetheless, here are a few resources that have been helpful to me.

http://info.magento.com/rs/magen...

11 Reasons Why Magento Is An eCommerce Platform Worth Considering

Why You Should Not Use Magento

See Questions On Quora

Posted on 15 March 2013

How do you organize multiple projects in a codebase with shared logic?


DECOUPLE! DECOUPLE, DAMN YOU!

At Spotify, we have learned, through maintenance pains equal to the heat or a thousand burning suns, that decoupling is the way to go. Basically, decouple until it hurts.

We found that the more stuff you build into a thingamabob, the more brittle it is. Partly just because more code inevitably means more bugs and more hairy maintenance, and partly because the more responsibilities a system has, the more other systems depend on it. This, in turn means that the service will fail more because it's under greater stress from many other apps (which, as a bonus, will fail with it).

The Spotify backend (which is Python to a very large degree, by the way) consists of about 100 different services. They are all very, very simple and are stricly focused on doing one thing well. Most of them are pretty autonomous, meaning that they depend on few other services, and when they do, they assume that the other services get slow and/or go down from time to time.

Note that these are separate services. They have their own code base and their own databases. For instance, the playlist service is completely separated from the user service and the music storage. Sharing a single database is NOT a good idea - it quickly turns into a massive, unmaintainable horrible thing that must not fail, but does, all the time. :) I have observed this "master database" phenomena first-hand in other companies, and it's NOT fun and happens REALLY fast. 

These services talk to eachother using a propietary protocol, but used to be done in HTTP.  HTTP will do fine for most services, the reason we no longer use HTTP at Spotify is because our load situation is extreme - 20 million users streaming music is crazyhat.

Spotify makes incredibly extensive use of git submodules, which is definitely a workable solution. However, I'm personally not a fan. Git submodules are not designed to be a package manager, and if you can, use actual package managers instead, such as pip or easy_install for Python, npm for node.js or gem for Ruby. It will save you a lot of pain to have sematically versioned packages in place instead of messing with git submodules. To set up a private package server, I recommend Gemfury.

We do, actually use a single repository for all this, and git seems to handle this just nicely. If you use Github, you might as well use separate repositories, but it's very tricky to setup without.

Edit: More fun reading about the Spotify backend can be found in this answer: What is Spotify's architecture?


See Questions On Quora

Posted on 10 December 2012

Why is there a recent trend away from PHP towards Python and Ruby on Rails?


PHP was the first open source language designed for the web and reached maturity around 1999 with the release of PHP4.  Before PHP there was only perl (free, but a general purpose scripting language, kind of hard to learn) and ASP (which was not free and required an enterprise-level budget to run.)  So PHP had a head start of about 6 years over Ruby andy Python.  (These languages existed since the mid 1990's but had no web frameworks written for them).

Despite PHP's many shortcomings (lack of true object orientation, weak exception handling, no lambdas, and as others have mentioned, being essentially a huge flat namespace of inconsistently-named functions) it won by its ubiquity.  It was free and even the cheapest commodity web hosting providers were offering PHP by 2002 or 2003, so it had a full generation in Internet years to establish itself as the common language for open source developers. 

The emergence of Rails in 2005 began to change that but it took a few years for Rails to gain mainstream acceptance.  Python followed suit with the development of the Django framework, on the same MVC pattern as Rails. 

Services like Heroku were essential in getting Ruby to the mainstream - you no longer needed to have dedicated servers or know how to compile source code to run a Ruby server - you essentially had the same consumer-level pricing for running Ruby apps that you had with PHP. 

Ruby and Python are overtaking PHP because developers tend to favor the languages - they have better abstractions and allow programmers to be more productive.  Also, the ubiquity of PHP worked against it a little because it meant that less skilled programmers could contribute code and the quality of code in PHP projects is generally of a much lower quality as a result (see WordPress plugins for example) while the Ruby and Python communities have focused on developing better coding practices like Test Driven Development.  As a result, people who use Ruby and Python are perceived as "better" programmers, and more desirable hires.  New technology-focused companies are thus more likely to start projects in Ruby and Python because of the perceived higher quality of developers, even though for most web applications, an experienced team ("experienced" being the key) using Symfony or Cake can be just as productive as a team using Rails or Django

There's always going to be a fringe language X that's favored by hackers and academics, but has no obvious business application and thus stays obscure, only to seemingly come out of nowhere years after its invention when the critical mixture of a user need and practical libraries is achieved.  Today it might be Haskell or OCAML or Scala.  It's been LISP for about 50 years now.

See Questions On Quora

Posted on 27 October 2012

What should I write my web app with?


PHP is a programming language whereas Rails and Django are frameworks which means they're completely different so PHP won't give you paginating out of the box (or any other language). However, Symfony or CakePHP may give you paginating which I believe they're Rails/Django equivalent of PHP world.

My personal choice would be either Rails or Django.

See Questions On Quora

Posted on 21 June 2012

What should I write my web app with?


PHP is a language that is extremely easy to learn and code, but notoriously difficult to maintain (and maintaining a piece of software is the biggest part of it by far - the real work starts when the site launches, it doesn't end, as one would often like to believe)

Python+Django is the solution of all mentioned that will offer you the most guidance and hand-holding of how to do things, while both Ruby and PHP offers you significantly more rope to hang yourself with as a new programmer.

Then again, the first piece of software that you'll write as a programmer WILL be a unmaintainable pile of shit regardless of what language you use, and will need to be re-written if the app becomes successful - so go with whatever you think is fun and resonates best with your personality.

See Questions On Quora

Posted on 18 June 2012

I'm making a website that will heavily make use of machine learning and data mining algorithms. Should I use Django or Rails?


Here's a thought: write the ML part and the web interface separately, and have them communicate by a simple internal API. Then you can write each part separately, in whatever language.

For instance, you might decide that it made sense to write the numerically intensive parts in R, but writing a web frontend in R would be the act of a crazy person.

See Questions On Quora

Posted on 30 May 2012

What are some best practices for Django development?


Here are some things I have learned over the years that have helped me:

1. Try to setup your projects with the following directory structure

/myproject
   /apps
   /configs
   /settings
   /deploy
   /static
   /templates
   urls.py
   fabfile.py


apps - contains subfolders with specific functionality (static, accounts, etc)

configs - stores all configuration related scripts (gunicorn, nginx, celery, mongdb, redis, etc). It's useful because you can use fabric (put command) to copy these over to the correct locations on a server

deploy - contains all deploy scripts, set up in similar manner to this project[1]

A lot of examples you see online put everything into a single fabfile.py, but that gets really messy as a project gets larger. Having a deploy folder that is organized like django-fabtastic allows you to cut-and-paste it over into other projects if you are using the same technologies

settings - a folder (not a file like settings.py) that is setup based on this reference [2]

You could use local_settings.py, production_settings.py etc. but that yipit guys got it right and that is definitely the way to go

static - contains js, css, images, types/fonts

templates - all your html files

2. Use gunicorn[3] instead of apache. If for no other reason, a print statement in code wont crash the entire site. Gunicorn is less bloated and very easy to configure. And large sites like instagram are using it at web scale so dont let people tell you its not a good idea - it will make your job easier and you can leave the office and drink a lot more beer

3. Use celery for anything that can be made asynchronous (sending emails, uploading photos, etc). Dont make the user wait for the request to return, push it onto a queue and let celery do the work for you. Also, do not use rabbitmq as the celery backend, use redis. RabbitMQ is supposedly more stable and messages cant get lost, but it's also a pain to configure and 99% of people can afford to lose a message because a lost message really doesnt matter that much.

4. If you are going to use a SQL-based solution, then use South for migrations. I  have had a lot of success migrating away (completely) from Django's ORM[7] and sticking to PyMongo[5] + MongoEngine[5]. Development is way more fun if you're using MongoDB, if you do not believe me, try it out. Say goodbye to painful schema migrations. Ya, and I know, MongoDB doesn't scale, but guess what, it does.

5. If you need to make a REST API, then use Django-TastyPie[8]. Unfortunately, there is currently no good solution for constructing RESTful APIs if your backend is MongoDB. If I am wrong, provide a link please because no one on StackOverflow could[9]

6. Do not use test.py for unit tests, put them in a directory called tests/__init__.py and import them in that __init__.py file. Also, trying using
nose, it's really cool.[10]

7. Look and good open source project for reference. The most obviously is the Django project itself[11], but Newsblur[12] and Everyblock[13] are also great references:

That is it- that is 3 years worth of trail-and-error for free!

[1] https://github.com/duointeractiv...
[2] http://tech.yipit.com/2011/11/02...
[3] http://gunicorn.org/
[4] https://github.com/ask/django-ce...
[5] https://github.com/mongodb/mongo...
[6] https://github.com/hmarr/mongoen...
[7] https://docs.djangoproject.com/e...
[8] https://github.com/toastdriven/d...
[9] http://stackoverflow.com/questio...
[10] http://readthedocs.org/docs/nose...
[11] https://github.com/django/django
[12] https://github.com/samuelclay/Ne...
[13] https://github.com/dkukral/every...

See Questions On Quora

Posted on 1 April 2012

How can I look up Django functions?


You can use the ./manage.py shell command to get a shell which will import any Django modules (or any of your own code) without complaining about the location of the settings.py module. Install IPython first to get a much more useful interactive shell when you run that command.

Once you've done that, "from django.http import HttpResponse; help(HttpResponse)" should work as you would expect. I do most of my Django development interactively.

You can also drop the line "import pdb; pdb.set_trace()" in to any of your view functions when working with the development server to get an interactive Python debugger prompt at that line in your code - then you can interact with the request and response objects of your actual site on the command line. Just be VERY CAREFUL not to leave that line in when you deploy the site, as it will hang your web server. Installing http://pypi.python.org/pypi/ipdb gives you an IPython shell here with import ipdb; ipdb.set_trace().

I wrote a bunch of tips on debugging Django a few years ago: http://blog.simonwillison.net/po...

See Questions On Quora

Posted on 9 February 2012

Play Framework, Django or Rails? Which one do you recommend for Social Networking Web applications.


Both Rails and Django have been used for a large number of high profile social networking web applications. Off the top of my head, Django is used by Instagram and Pinterest, Rails is used by Posterous and Ravelry. I don't know what the largest sites built using Play are at the moment.

The hard problems involved in building a social network are essentially framework-agnostic: things like scaling an activity feed and running queries against large social graphs are solved by smart application architecture, not built-in framework functionality. Whether you use Rails, Django or Play will have almost no effect on how you solve those larger architectural challenges.

Pick the one you are most comfortable working with and start worrying about your site's functionality rather than its application framework.

See Questions On Quora

Posted on 14 January 2012

I want to learn to code Python and Django (web framework). What's the best way to start for a programming newbie?


Although I think Python is a better overall language, if you just want to slap a utilitarian web interface on some backend code for internal use then PHP might be a better language to learn. It's easier to setup on the server, will run on virtually any host, and is a more out of the box solution.

As for Python/Django:

If you have never programmed before, it's definitely worth learning Python before you get to Django. Someone with experience could skip to a Django book/tutorial and pickup Python on the way - it's a simple language with very clear, easy to read and understand code.

How long it takes you to learn what you need to know is highly variable. If you are just trying to write some automation scripts to help cut down some manual labor, then you can probably go from zero to this point in a few weeks (maybe 20-30 hours). If you want to write production quality web apps using Python/Django, it's going to take longer.

Setup The Environment

First download Python if you don't have it. http://www.python.org/getit/ I prefer Linux, but your MacBook will be more than sufficient as a dev machine.

Python is in a state of limbo between the 2.7 release version and 3. While 3 is the future, it introduces some intrinsic changes which many of the popular libraries do not yet support, Django included. Your best bet is to start with 2.7 and switch to Python 3 later. Also, most of the learning material available is still written for Python 2.

You can write code in any text editor. My favorite, and an up-and-coming basic code editor is Sublime Text. It is simple, elegant, and very functional. http://www.sublimetext.com/ It costs $59, but you can use it free for an unlimited amount of time (as of right now). Well worth buying though.

Many Mac developers love and swear by TextMate. It's more developed and further along than Sublime, I think. Costs $54, and has a 30-day trial.

If you get deeper into programming and want a full featured integrated development environment (IDE), then PyCharm is top notch. http://www.jetbrains.com/pycharm/ It costs $99 and has a yearly renewal fee for updates, but is worth it. Something like this has a much steeper learning curve than Sublime Text or TextMate, but they can save you time and keystrokes in the long run.

I'm going to assume you are familiar with working in the terminal, since you have IT experience. If not, this might be a good starting point: http://smokingapples.com/softwar...

Django apps can be run entirely on your own dev machine, but if you want to put it on the web to be accessed by others on your team, or from other machines you will need a host. There are some good questions on Quora about hosts, but ensure you choose one that allows Python and SSH access. I recommend finding a cheap Virtual Private Server (VPS), although this might be too steep a learning curve for someone without experience. (You say you've done a lot in the IT field, so some of this might be too basic for you, sorry).

I recommend learning and using Source Control. This helps manage your code revisions, and is particularly useful if you have more than one person working on it. I personally use Mercurial, but Git is more popular.

http://hginit.com/ is a good intro guide for Mercurial. http://learn.github.com/p/intro.... looks to be good for Git, but I haven't worked through it yet.

In addition to using Source Control, you'll need a source code repository (you'll learn what this means in one of those tutorials. GitHub (http://www.github.com) is the most popular, with BitBucket (http://www.bitbucket.org) coming in second. You can use Git on either, but GitHub does not support Mercurial. Also, BB has better options for free accounts - unlimited free repos, whereas GitHub limits you.

You might feel overwhelmed trying to learn how to program Python, learning Django, and trying to figure out source control and a myriad of tools all at once. In my opinion it's best to get down a version control workflow early on, rather than putting it off. You'll develop good habits early on that will help you down the stretch.

Where to Learn
There are a ton of resources for learning Python, and quite a few for Django. Be sure that whatever you choose, you go with resources that consistently use either Python 2 or 3. Also, stay away from small tutorials and stick with complete references. Learning from piecemeal tutorials will leave you with fragmented knowledge, and they are usually lower quality.

Here is a list of references taken from another Quora question. The key to learning how to program, in my opinion, is to practice a lot. So do the exercises these books contain, and do more programming on your own.

Online Tutorials & Ebooks
All free

Recommended: http://www.diveintopython.net/
http://docs.python.org/tutorial/
http://swaroopch.com/notes/Python
http://homepage.mac.com/s_lott/b...
Recommended: http://greenteapress.com/thinkpy... (A higher level look at programming with Python as the tool; highly recommended if you want to be a good programmer)
http://python.net/~goodger/proje...
http://learnpythonthehardway.com/

Videos

http://code.google.com/edu/langu...
http://www.youtube.com/user/then...
Recommended: http://ocw.mit.edu/courses/elect... (A higher level look at programming with Python as the tool; highly recommended if you want to be a good programmer)

Books
Sometimes having a physical book makes it easier for some people to learn. Many of the above ebooks are available in hard copy.

Dive Into Python
Think Python
Learn Python the Hard Way
A Byte of Python

How do I learn Python?

All of those are Python references. The online material available for Django is more sparse, but there are some good resources.

The Django Book is the starting point for most people: http://www.djangobook.com/

There is, of course, the official tutorial: https://docs.djangoproject.com/e... I found Django Book more useful. However, get very familiar with the Django docs. They are very good, and you will be spending a lot of time digging into them.

This is a highly recommended hardcopy book for learning, but I've not used it: https://www.packtpub.com/django-...

Prefer video? This series ought to be very good: http://teamtreehouse.com/library... I have not tried it yet either. There is a $25/mo fee for their service

Getting Assistance
Inevitably, when you are learning or attempting to build something, you're going to run into a brick wall at some point.

This is my workflow if I get stuck on a concept, or while programming:
Check the Documentation -> Check the Source Code -> Search Google -> Ask on StackOverflow

Asking is always a last resort, quite simply because figuring it out on my own gives more of a sense of pride and accomplishment, and I'm more likely to remember the solution.

Python Docs: http://docs.python.org/
Django Docs: https://docs.djangoproject.com/e...

See Questions On Quora

Posted on 15 December 2011

What is the best Python web app framework? And why?


For your prototype, you can bang it out in whatever framework you like the most.  They're all good enough these days.  Speed-to-market matters the most at this stage.

But when your web app reaches a point where you have fairly complex problems, no off-the-shelf framework is going to be good enough any more.  You'll need to own the stack all the way from the top to the bottom.

Look at any major site: they all customize some framework to the point where it is nearly unrecognizable, or they write their own.  That's OK!

At that stage of the game, the best framework is the one you write yourself once you understand exactly what you need.

That doesn't mean you should ignore all these frameworks.  You should study them.  There's good code in there.  Read the source code of as many as you can.  But be very careful about tying your project's future to somebody else's architectural choices.  Be very careful on that.

See Questions On Quora

Posted on 11 October 2011

How difficult is it to take a pre-made theme and make it work with Django?


By template I'm assuming you mean  set of html, css and possibly js files.
This is pretty straight forward - you just use them for your base template, and where needed extend it. Make sure you clean up any dummy content, put in your own navigation links etc. You can then embed various tags within the template to allow extending templates to overwrite certain content blocks.

See chapter 4 of the Django book, and look at the Django reference as well:

http://www.djangobook.com/en/1.0/

See Questions On Quora

Posted on 11 June 2011

Should I learn Ruby/Rails, Python/Django, or Scala/Lift?


RoR. Some reasons:
  • it's the current reference for what a Web framework should be. All other frameworks are compared to it; a well-rounded developer can safely skip Django and hold out on Lift, but should have some Rails
  • it's definitely not a bad tool for a whole class of tasks, with large production mileage and a good-size eco-system
  • you can get a job doing it

Lift is very interesting if you're curios. I don't know enough Django to recommend it or not, but it's nowhere near Rails' adoption levels.

See Questions On Quora

Posted on 1 June 2011

Why is Ruby/Rails or Python/Django better than PHP?


Like Gidi Meir Morris says, comparing PHP to a framework is a bit problematic. A more accurate comparison would be to compare PHP to Python or Ruby, and to compare a framework like CakePHP to Rails or Django.

PHP, as a language, has a bad reputation for three main reasons:
  1. PHP is INCREDIBLY easy to pick up. In part because the language is designed that way, but also because there is a lot of documentation for PHP targeting people that doesn't know anything about programming and should not ever be taught anything about programming. :)   This is my favourite example:  WPDesigners guide "So you want to create Wordpress themes, huh?" http://www.wpdesigner.com/2007/0...   It is brilliant in the sense that it assumes absolutely NO knowledge about what the hell you are doing, and teaches PHP without the need for any prior knowledge whatsover. Which is great, but the problem is that these people then think that they can actually program, and then then proceeds to release a scourge of untested, bug-filled, unreadable, horrible pieces of code on the world, which has given PHP a bad rap. Drupal (and the insane amount of piece-of-shit plugins that is available for it) is a fine example of this.
  2. It's disgusting to a compsci-person. The language, while absolutely capable, is like a Leatherman duct taped together with a chainsaw, a hammer and a chicken. It's not cleanly designed from the bottom up by a computer scientist, like most other languages, resulting in what is elaborately described in the answers to What are the horrors of PHP?
  3. PHP is no longer cool. Around 2004 when Facebook launched, PHP was the shit. Since then, development of it has stagnated and the throne as the cool new development thingamabob has been overtaken by Ruby on Rails.   If you doubt the stagnation of PHP, read this http://tmont.com/blargh/2010/7/p... and compare the TIOBE index if PHP in 2005 with that of now: http://www.tiobe.com/index.php/p...

Follow me if you're interested in this kind of stuff!

More reading:


See Questions On Quora

Posted on 25 May 2011

Why is Ruby/Rails or Python/Django better than PHP?


Your question is flawed, as it compares two different things.
PHP is a language while Rails & Django are frameworks.
You are comparing apple and oranges.

I'll explain why people usually react the way you describe, though:
  1. What experienced developer hate most is rewriting what has already been written and fighting their code base to make it do what they want. This is where frameworks come in. A framework gives you a ready made code base which has been designed and tested by many developers who came before you and give you a well thought out solution for common problems. This saves you time and headaches. Rails & Django are two good examples of frameworks which solves specific problem (specifically those surrounding the repetitive work which goes into Web Application development).
  2. PHP is a language, just like Ruby & Python. All three are good languages, with specific weaknesses & strengths. PHP specifically, especially amongst less experienced developers, has a tendency to become spaghetti code... which is why many hate it. I have worked with PHP for years and find it annoying in the wrong hands, but if your developers are good PHP is a fine language to use.


See Questions On Quora

Posted on 25 May 2011

What are the benefits of developing in Node.js versus Python?


  • You can use the same language for both client and server development.
  • The Chrome V8 engine: this is the single biggest selling point . There are many optimizations in the V8 engine ( most notably hidden classes and inline caching) that put it head and shoulders above any other dynamic language implementation [1].
  • Javascript as a language with closures is well suited for callback centric asynchronous programming.

[1] http://shootout.alioth.debian.or...

See Questions On Quora

Posted on 6 January 2011

What are the benefits of developing in Node.js versus Python?


I see three major "wins" that Node.js has over most other development environments (including Python):

  1. It's built to handle asynchronous I/O from the ground up. Other environments have async. I/O features, but Node's the first environment where it's really pervasive. In most environments you'll find only limited pieces available in async. flavors, but in Node everything (or nearly everything) is async.-only. It's actually hard to write non-async. code in Node!

    Now, there's some debate over whether async. programming is really the silver bullet some claim it is, but in my mind there's little doubt that it's a really good match to a lot of common web- and network-development problems.
  2. It's "just JavaScript." Every time I  context switch between Python on the backend and JavaScript on the frontend I waste stupid amounts of time making silly syntax errors — semicolons in my Python, missing braces in my JavaScript, etc. Some days I might switch a dozen or more times, and it really feels like I'm wasting brain cycles swapping in and out my language knowledge. Staying in a single language feels faster.
  3. It's new, so it has the benefit of being able to learn from previous languages' and environments' mistakes. Better, Node can correct those mistakes without the backwards-compatibility concerns. For example, the Node package installer, npm, is already quite a bit better than many of its equivalents. All in all, Node feels very polished and modern; it hasn't had time to accumulate the cruft other languages/environments have.

    (Sadly, I'm all too sure it will accumulate this cruft eventually. Everything new feels old eventually.)

I highly recommend that you take the time to learn Node — it'll make you a better developer, whatever you end up using. I learned Node last year, and I'm very happy I did. It's a cool piece of software, and it's a great tool to have in your toolbox.

See Questions On Quora

Posted on 6 January 2011

As someone learning Python/Django, should I set up a local server on my Mac or should I just use Google App Engine?


Absolutely yes you should setup a local server. And by that, I mean simply run this command inside your project: ./manage.py runserver (I can't tell you how many times I type that every day...) then point your browser at http://localhost:8000/ and you should see the blank django page.

Follow the tutorial on djangoproject.com -- it's a very easy step by step way of getting started with Django.

And remember that Django is not Python and is certainly not App Engine. If you're just learning, there's no reason to put your stuff on a server -- just run it locally and learn that way. When you get to the point of wanting to post your project publicly, there are oodles of tutorials out there on how to do it.

In summary: stay away from GAE for now, run the local server, use sqllite for your database -- don't mess with setting up mysql, and don't forget that learning some good ol' fashioned python will be helpful along the way.

See Questions On Quora

Posted on 5 January 2011

What is the highest traffic website built on top of Django?


Updated July 2011

Disqus serves over 3 billion page views, and more than 500 million unique visitors a month on its Django stack. As far as we know we are the largest installation out there.

Each page view translates into several hits that go to Django, Varnish, and other services. We also employ a large amount of traffic on non-web instances of Django, such as through Celery and other worker-style processes.

See Questions On Quora

Posted on 24 August 2010

Why did Quora choose to develop in Pylons?


The main reason we chose Pylons over other Python web frameworks was because we knew we wanted to replace a lot of it with our own stuff (we don't use templates or an ORM,) and Pylons seemed like a better choice for doing that than other frameworks we considered (Django, etc.)  This was based on just reading stuff on the web since none of us had used Pylons before.

One thing that also contributed to the decision was that I knew MochiMedia used Pylons (in addition to Django), and they seem to generally know what they are doing and be pretty smart.

If Flask had been released when we were setting things up, I think that would have been in the running as well.

See Questions On Quora

Posted on 17 February 2010

What is the best Python web app framework? And why?


The two that stand out to me are Django and Pylons.

Pylons makes more sense if you want to invest a lot in doing custom work on your framework; Django might be a better choice if you want to make a site like a newspaper (or other traditional CMS product.)

cherrypy can be a good choice for very small projects.

They both have lots of documentation and lots of users and are easy to setup.

I put some time into researching this in the spring of 2009.  We chose Pylons because the different parts are easy to swap out.  For example, we didn't want to use a templating system, and it was easy to choose any templating system or just not use one with Pylons.  My impression was that it was slightly harder to do this in Django which has a tighter full stack integration.

If you want to use your web app framework as a CMS, Django is probably a better choice.  There are lots of convenient plug-ins and all the different pieces are setup to work up with each other so it's easy to build things that are similar to a newspaper really quickly with it, and it has lots of administration and account things built-in in a way that Pylons doesn't.

Ben Bangert, the creator of Pylons, has a somewhat informative discussion of Django vs. Pylons here.  http://stackoverflow.com/questio...

For small projects, I've used cherrypy sometimes, which isn't perfect but runs as a standalone webserver and requires very little boilerplate to setup.  Flask is a new framework that is gaining popularity and seems to fill the same niche but be a little bit more refined than cherrypy. ( http://flask.pocoo.org/ )

See Questions On Quora

Posted on 14 December 2009

reddit.com: search results

Things you love and hate about using Celery with Django.

I am the author of django-q , a task queue and scheduler application for Django. Even though I never wrote it as a Celery competitor, I keep getting questions like 'Why should I use this and not Celery?'.

This project is only a few months old and I wrote it specifically to make scheduling and asynchronous tasks easier to use in Django projects. So I am asking you, Djangonians with a taste for tangy vegetables, what do you love and hate about using Celery with Django?

I'll try to make a comparison based on your input, which hopefully will help future developers make an informed decision.

submitted by koed00 to django
[link] [69 comments]

Posted on 28 August 2015

Why Django over PHP xor Ruby?

I plan to learn at least PHP and Django but I'm curious why there's a preference. I asked the same question over on /r/PHP and while they gave good reasons for using PHP they didn't have a clear idea of why someone would use Django or Ruby.

This tells me they likely just don't know.

From what I read online, Django and Ruby are way more popular among startups and 1 product shops, does anyone have a good intuition as to why? Is it purely a matter of more concise and legible code?

Thanks for any insight :)

submitted by charlesbukowksi to django
[link] [51 comments]

Posted on 18 July 2015

Anyone here using Python 3 with Django?

I am searching online for a host/cloud provider that has easy-install django setup, but it seems everyone uses Python 2.7.x. I understand a lot of existing stuff relies on Python 2.7.x, but it seems people don't want to move to 3.x and so there is very little information about it online.

Is anyone here using Python 3.x with Django?

Who is your host and what is your experience?

Is it inadvisable to jump to Python 3.x at this point?

submitted by YouAreSalty to django
[link] [54 comments]

Posted on 8 June 2015

what does django offer that rails doesnt?

hi all, i've asked the opposite question on the rails subreddit too, and i've so far got comfy with django, and now that i'm at a certain point of django, what is it about django that wouldy throw me off onto rails because it may be nicer to do on rails?

i like dango because its probably as popular, the docs are better i think, and of course python is used more than ruby (i think).

so make me stay on django!

submitted by a5myth to django
[link] [40 comments]

Posted on 23 February 2015

What is Django not good for?

Hi, I'm a couple months into Django and it is my first step into web development, and I was wondering what (kinds of websites?) is Django not so good for? If you could briefly explain why, and also what an alternative to Django might be in that instance that would be great. Thanks!

submitted by Caught_Up to django
[link] [47 comments]

Posted on 3 December 2014

The Django Tutorial: Dated and Confusing?

Hello Django Community! I'm curious to hear from Django users (experienced and new) in regards to your experience working through the tutorial, and then moving on to building your own project.

I've heard some people claim that the tutorial is "simple, straightforward, and all you need" to get running with Django. I've heard other say they were just as confused (or more so) after doing the tutorial as they were before doing it.

For me, I didn't fully understand Django until I learned Flask. Flask started at ground zero: a hello-world application. In 7 lines of code and two terminal commands a new user can have an application up and running. There's no discussion of ports, databases, or assumption that Flask is installed already. It takes a total noob, gets them up and running, and then starts things off in an easy-to-read format. There's even a separate forward for experienced programmers.

Once I had deployed a Flask project and tried Django again, I finally understood what was actually going on in Django (and its strong points). Now, after using both for many projects (both large and small), I thought I'd ask: Do you think the Django tutorial needs a rewrite? If so, what would you do to change it? I'm also curious to know what your experience with web development, python development, and MVC was before you started learning Django.

My opinion: The Django Documentation direly needs an overhaul to appeal to the MVC/MTV/Python framework noob. It simply introduces too much, too fast. Sure, the Admin is cool...but does it belong in the tutorial? Sure, a HUGE part of Django is the ORM/models...but do we really need to start talking about databases before introducing other parts of the framework?

On page one of the tutorial, the new user is instantly hit with Database setup, creating models, migrations, and the python shell. On page two, we completely switch gears and play with the admin. Finally, on page 3, we talk about views and actually displaying our own content on the front-end. It's true, Django is a HUGE framework when compared to Flask. But is it really appropriate to drown the new user in so much, so quickly?

submitted by rnevius to django
[link] [31 comments]

Posted on 27 October 2014

We are the authors of High Performance Django. Ask Us Anything!

Hi r/django! We recently published High Performance Django and are having a live Q&A session this Thursday, October 16th at 19:30 UTC. We'll be taking questions from IRC (#lincolnloop on Freenode), Twitter (use #hpdjango) or here and answering them on a live Google Hangout. Fire away with any questions you have about Django, deployment, scaling, etc. and we'll do our best to answer them!

You can tune in at https://highperformancedjango.com/live/

submitted by ipmb00 to django
[link] [48 comments]

Posted on 14 October 2014

Lets just dream Django 2.0

This post is more for a little fun than anything else. The idea behind it is you create your wish list of features for Django 2.0 it can be as sensible or far out as you like.

Personally I would love to see complete support for nosql (kind of speaks for it self) I would also love to see a full wsgi server built into django something like gunicorn by default so deployment becomes a breeze (not that its really hard at the moment).

submitted by mattwritescode to django
[link] [60 comments]

Posted on 7 August 2014

You have all been a huge help to me in my Django journey, so I thought I'd share what you helped build

Around 13 months ago, I decide to learn Python and Django so I could start building some website ideas I had. Previously, I just knew HTML and CSS and was using the ExpressionEngine CMS to build sites. It served the purpose and was good enough I guess, but I couldn't customize anything as I didn't know PHP. I wanted to be able to make changes to the way the site worked so it would do what i wanted and not have to bend around what the CMS could do. So... after 13 months of work learning Python and Django well enough to feel like I could start on this site, I dove in and with a lot of help from you folks here, I've launched: http://www.golfledger.com.

It's a site where golf addicts like myself can signup, share, discover and discuss all things golf. Aside from being able to post links (the site uses beautifulsoup to scrape the url and return data), members can follow each other, favorite links, like links, report links, comment, and like comments. I built a basic reputation system into it that keeps track of points when each users does something on the site, i.e., submits a link or comments.

Some apps I used:

Thanks for looking!

submitted by dsizemore to django
[link] [25 comments]

Posted on 25 June 2014

Django VS. .NET

Hi, my client is asking me why we chose Django for his project and why it was a better choice against .NET I don't know .NET, can you help me explain why (and if) Django was actually a better choice than .NET for their website? Can you post some "literature" about the argument? To better understand the project, consider it is a custom CMS, totally built on AJAX requests.

submitted by carusog to django
[link] [52 comments]

Posted on 17 March 2014

Django Unchained. Dr. King Schultz being a Dentist explained.

In Django, one of our heros Christopher Walt'z' Dr. King Schultz at one point was a Dentist-which seems like a strange offbeat choice to have a character have that as an occupation at first. Dig a little deeper and start looking at the naming conventions of the film.

You have Dr. King Schultz, a third party outsider who's current job is to thwart the evils at hand and the spreading issue of racism and slavery running rampant throughout the south.

Fine- he used to be a Dentist- whatever- this is Tarantino right? He's wrought with quirky decision making.

But then take a look at who he's first hunting; The Brittle Brothers. Aside from a few things, the only thing that comes to mind when I hear the word Brittle is sweet sugary Brittle Candy- as in Peanut Brittle and Caramel brittle, all syrup cooked to sweet perfection. He finds and eradicates them with the help of freed slave Django, only to name his next target; Calvin Candie- owner of "Candie Land" In short- the south is an invented cavity laden cesspool. The infection of slavery is growing and Dr. King Schultz is the living remedy.

Not to mention to one look at Calvin Candie and you see-maybe more than anyone-is in need of a Dentist. He sucks down Coconut juice- pure, cavities causing straight cane sugar. So in context you see, He IS the cavity and Dr. Schultz is there to to eradicate him.

Tarantino uses the so-good but-so-bad for you analogy of candy as the infected spreading epidemic of slavery and racism in the south to highlight it's need to be stopped.

submitted by pgibso to FanTheories
[link] [59 comments]

Posted on 15 March 2013

What are your favorite django apps ?

I'll start with my own list:

I will add more later with links to projects repos (I'm on mobile right now)

Update:

Some have been quicker than me, but I'll list them anyway:

Those are some I developed and use frequently:

submitted by hhh333 to django
[link] [21 comments]

Posted on 23 June 2012

The Onion Uses Django, And Why It Matters To Us

We wanted to post earlier why we like/use Django, but, we get pretty busy around here, so a bit late. Sorry if this is duping any existing threads.

Why

This is not a Drupal vs Django fight, we're not here to slag Drupal, Drupal has been important to The Onion, but The Onion decided to stop using Drupal a long time ago. The Onion deployed a Drupal site back in 2005, at the time it was the right decision given the resources, yet even then we were interested in using Python whenever possible. We feel it is a vastly better designed language than PHP and of course any framework you're using is only as good as the language. We started rolling out other projects, like The A.V. Club, in Django. Just this past weekend we switched over The Onion proper, and we're seeing immediate gains in speed, maintainability, and stability. As a team we have a pretty broad base of experience and I know we're all in agreement that what we've got now is better, enormously better. We're not just using Django, we have some other pieces that made our lives easier: git, PostgreSQL, VPS's. So this isn't just about The Onion using Django (and recommending it), but generally that you can make things better by investing time and energy into new technology.

How

It took us about 3 months to convert our old Onion site to Django while we also maintained and built on our other sites. We already had some components written for A.V. Club, including a strong article and image model, so we felt we could concentrate on coming up with good models that covered the necessary editorial cases. The hard part was more how to fit pieces of content from ten years ago consistently and cleanly than it was writing the code to make use of the final model. We broke out templates into nicely reusable components and made use of the Django template hierarchy. Multi-db made the conversion of data from a MySQL db to the PostgreSQL db fairly easy, so we could rerun importing old data into the new system and fix and tweak. There is an enormous advantage using Django, sorl and PIL for creating image crops based on templatetags which gives the editorial and design folk flexibility they need (no more css cropping odd-sized images into place). Again, lots of work went into actually cleaning a site that goes back to 1996, Django allowing for a relatively minimal amount of coding -- particularly when it comes to the admin side for content entry, Django trunk we found almost ready to go as-is (something we did not find with previous Django). That we could use the Django admin rather than create custom entry forms I think saved us 2 months work.

Because

Cleaner. Much cleaner. Proper unit testing. Real reusable components across applications. An ORM rather than a just a series of functional query helpers. Tighter conventions (q: how often do people using Python argue about bracing styles? a: they don't). We can update then test a Django core change without worrying about having to take apart our applications, and if we do need to make a change, it's easy to do because there's less, much more readable code. Every member of the tech team can meaningfully contribute because there are fewer specialized or hacked together pieces. We can move more quickly on large changes because of all these reasons. And we're more stable because of all the previously expressed points.

-- The Onion Tech Team

submitted by westononion to django
[link] [115 comments]

Posted on 24 March 2010