$30 off During Our Annual Pro Sale. View Details »

Fun with Django and Databases

Fun with Django and Databases

A talk I gave at EuroPython 2010

Andrew Godwin

July 19, 2010
Tweet

More Decks by Andrew Godwin

Other Decks in Programming

Transcript

  1. Django and Databases
    Fun with

    View Slide

  2. ""Andrew speaks English
    like a machine gun
    speaks bullets.""
    Reinout van Rees

    View Slide

  3. Introduction

    View Slide

  4. from django.db import models

    View Slide

  5. First, an aside

    View Slide

  6. ""When all you have is a
    hammer, everything
    looks like a nail""
    Abraham Manslow (paraphrased)

    View Slide

  7. Also, "NoSQL"? Really?

    View Slide

  8. queryset.raw()

    View Slide

  9. qs = Teacher.objects.raw("""
    SELECT t.name, COUNT(s.id)
    FROM school_teacher AS t
    INNER JOIN school_student AS s
    ON t.id = s.teacher_id
    GROUP BY t.name
    HAVING COUNT(s.id) > 2
    """)

    View Slide

  10. queryset.aggregate()

    View Slide

  11. qs = Teacher.objects.annotate(
    num_students =
    models.Count('student')
    ).filter(num_students__gt=2)

    View Slide

  12. Search
    haystack __search=

    View Slide

  13. Schema Changes

    View Slide

  14. Changing Requirements

    View Slide

  15. Dynamic/Unknown Data

    View Slide

  16. Document Databases
    MongoDB
    CouchDB

    View Slide

  17. Key-Value Stores
    Redis
    Cassandra

    View Slide

  18. Redis
    Sets Sorted Sets Hashes
    Pub/Sub Atomicity

    View Slide

  19. Message Queues
    AMQP
    Celery

    View Slide

  20. Various Others
    Graph databases
    Filesystems
    VCSs

    View Slide

  21. Conclusion

    View Slide

  22. Thanks.
    Andrew Godwin
    @andrewgodwin
    http://aeracode.org

    View Slide