Your SlideShare is downloading. ×
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Flask vs django
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Flask vs django

565

Published on

Porovnanie frameworkov z …

Porovnanie frameworkov z
hľadiska modulárnych aplikácií

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
565
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Django vs. Flask Porovnanie frameworkov z hľadiska modulárnych aplikácií
  • 2. Tomáš Drenčákl 6 rokov Javal 2 roky pythonl väčšinou weby a databázy
  • 3. Flasky goodnessl Kenneth Reitz l https://speakerdeck.com/kennethreitz/flasky-goodness l Flasky goodness (or why django sucks?)
  • 4. Výhody djangol Modulárnosťl Bezpečnosťl Výborná dokumentácial Hotové django apps tretích stránl Komunita
  • 5. Batteries includedl Admin interfacel Console (manage.py)l Databáza + ORM + migráciel User management + autentifikácial Sessionl Lokalizácial ...
  • 6. Django appsl Django appsl Model + web Firmy Kampane Zákazníci Nákupy Emaily Filtre Produkty
  • 7. Django apps - Spaghettil Django appsl Model + web Firmy Kampane Zákazníci Nákupy Emaily Filtre Produkty
  • 8. Štruktúra Django aplikácie Asynchrónne spracovanie: Nástroje: Web: Plánované úlohy Manažment User interface Asynchrónne úlohy Podporné služby API Service Data persistence CRUD Admin Autentifikácia
  • 9. Štruktúra Django aplikácie Asynchrónne spracovanie: Nástroje: Web: Plánované úlohy Manažment User interface Asynchrónne úlohy Podporné služby API Service Data persistence CRUD Admin Autentifikácia
  • 10. Riešenie ORTOGONALITA Alebo rob jednu vec a rob ju dobre
  • 11. Webová aplikácial Prezentačná vrstva l Web servicel Dátová vrstva l Asyncl Servisná l Pluginy l Command line
  • 12. Django Model Web Web service Service Command Line Async worker
  • 13. Django API Model Web Service Web service Command Line Async worker
  • 14. Nevýhodyl Stráca sa DRYl Nepoužiteľné batteries includedl Nepoužiteľné django apps tretích strán
  • 15. Flaskl Web microframeworkl Používa Werkzeug WSGI a Jinja2 ako templatel Žiadne závislostil Bring your own batteries
  • 16. Hello world from flask import Flask app = Flask(__name__) @app.route(/) def hello_world(): return Hello World! if __name__ == __main__: app.run() $ python hello.py * Running on http://127.0.0.1:5000/
  • 17. Rozšírenial Flask-SQLAlchemy - ORMl Flask-Celeryl Flask-Script - manage.pyl Flask-WTF - validácia formulárov
  • 18. Výhody Hierarchické formuláre Všetky možnosti SQL Jednoduchšia práca s template Možnosť určiť si architektúru Pri testovaní sa používajú reálne objekty Flask fillin – testovanie formulárov v template Routovanie nie je sekvenčné Malá knižnica, nemá veľa „Mágie“
  • 19. Flask API Web API moduly Model Zákazníci Reporting Kampane API Email Nákupy Celery
  • 20. Flask APIl create(company, "customer", email="test@example.com", **kwargs)l read(company, "customer", 1)l update(company, "customer", 1, email="another@example.com", **kwargs)l delete(company, "customer", 1)l object_list(company, "customer", type="new", **kwargs)l object_count(company, "customer", type="new", **kwargs)l Pokrýva 80 % funkcionalityl Ostatné cez samostatné funkcie, napr. reporting
  • 21. Flask view@route(/, methods=[GET, POST])def create_customer(id): form = CustomerForm() if form.validate_on_submit(): object = marketing.create( current_user.company, customer, **form.data ) return redirect(url_for(customer.update, id=object.id)) return render_template(customer_form.html, form=form)
  • 22. Výhody/Nevýhodyl Závislosť je len cez volanie funkcie a vrátený objekt – duck typingl CRUD operácie netreba vytváraťl Oddelené modulyl Je potrebné si vytvárať integrácie s WTForms pre lookup atď
  • 23. SQLAlchemyRelačná vrstvaORM vrstva sa mapuje na relačnúPlné pokrytie SQL a využitie funkcií databázy, napr. agregácieObjektové skladanie queryJoined select loading
  • 24. Agregácia príkladsession.query( Customer, Purchase.type, sum(Purchase.price)).filter(Purchase.date.between(date(2012,1,1), date(2012,12,31))).join(Purchase).group_by(Customer,Purchase.type)select customer.*, purchase.type, sum(purchase.price)from customer join purchase on customer.id = purchase.customer_idWhere purchase.date between 2012-01-01 and 2012-12-31group_by customer.id, purchase.type
  • 25. SQLAlchemy vs Django ORMDjango ORM SQLAlchemyObjektový model Relačná a ORM vrstvaIntegrácia s django 1:1 ku SQLVeľmi jednoduché agregácieJednoduché query sa robia Optimalizácie DBľahko Pri query cez viacNedá sa optimalizovať tabuliek treba joinovaťĽahké joiny (bez špecifikácie podmienky)
  • 26. Zhrnutiel Django l Menšie projekty l Jednoduchý model l Viem používať django bez úpravl Flask l Väčšie projekty l Nutné väčšie investície zo začiatku l Reporting l Dá sa použiť ako django

×