Upload
andy-dai
View
533
Download
1
Tags:
Embed Size (px)
Citation preview
SHOULD I SWAP OUT DJANGO TEMPLATE/ORM?
DON’T DO IT!
WAIT! NOT REALLY! IT’S WORTH IF…
YOU ARE OKAY WITH SACRIFICING ABILITY TO USE THIRD-PARTY DJANGO PACKAGES
YOU HAVE NO PROBLEM GIVING UP THE POWERFUL DJANGO ADMIN
YOU HAVE ALREADY ANALYZED YOUR OWN CODE TO FIND AND FIX THE ROOT CAUSES OF YOUR PROBLEMS
YOU’VE EXPLORED ALL OTHER OPTIONS INCLUDING CACHING AND DENORMALIZATION
YOU’RE VERY SURE THAT YOU’RE NOT OPTIMIZING PREMATURELY
YOU’RE WILLING TO ACCEPT THE FACT THAT UPGRADING DJANGO WILL BE EXTREMELY PAINFUL
THINK AGAIN!
OK. SO YOU WANT TO USE DJANGO WITHOUT…
“Django Admin”
“Django Template”
“Django ORM”
“Django Third-Party Packages”
AND YOU ADD SOME PACKAGES…
“MongoEngine”
“SQLAlchemy”
“WTForms”
“Jinja2”
CONGRATULATION! YOU GOT FLASK!
BUT ORM/TEMPLATE SUCKS…
REPLACE ORM WITH NOSQL
DO NOT DO THISGUESSWEBSITE WILL GROW RAPIDLY
IT’S OK IF…
YOU HAVE TRIED CACHING, INDEX, QUERY OPTIMIZATION..
YOU KNOW WHAT YOU ARE DOING
REPLACE DJANGO TEMPLATE WITH JINJA2/MAKO
DO NOT DO THISLOGIC IN YOUR TEMPLATE
IT’S OK IF THERE ARE SOME PAGES
THAT
ASK YOURSELF BEFORE REPLACING DJANGO TEMPLATE
“Why you want to do this?”
“Where’s the bottleneck?”
“Cache?”
DO IT ONLY WHEN YOU KNOW WHAT YOU ARE DOING
ALWAYS USE THE RIGHT TOOL FOR THE RIGHT JOB
– Donald Knuth
“Premature optimization is the root of all evil”
Django/Jinja2 Integration
• Jingo - https://github.com/jbalogh/jingo
• coffin - https://github.com/coffin/coffin/
• django-jinja - https://github.com/niwibe/django-jinja
Replace Django ORM
• SQLAlchemy - http://www.sqlalchemy.org/
• MongoEngine - http://mongoengine.org/
THANKS!