Using Databases With Python
Databases#
ORM - Object Relational Mapper#
Convert rows in tables into object (Models) in code
A simple lightweight one is called peewee
How to import everything
from peewee import *
Working with Mysql#
sudo pip install pymysql
then:
db = MySQLDatabase('peewee')
from peewee import *
make connection to db#
            db = MySQLDatabase('peewee', user='root', password='pass')
            # classes inherit from model
            # always name models for singular name
            # represents a single item in db
            class Student(Model):
                username = CharField(max_length=255, unique=True)
                points = IntegerField(default=0)
                # tell model what database it belongs to
                # class inside of classs
                class Meta:
                    database = db
            students = [
                {'username': 'stephen', 'points':45},
                {'username': 'squash', 'points':100},
                {'username': 'pat', 'points':150},
                {'username': 'matt', 'points':30},
                {'username': 'casey', 'points':1345}
            ]
            def add_students():
                for student in students:
                    Student.create(username=Student.username, points=Student.points)
            # if run directly and not imported
            if __name__ == '__main__':
                db.connect()
                db.create_tables([Student], safe=True)
                add_students()
Making queries#
- create()
- select()
- save()
- get()
- delete_instance()
Switches#
Python intentionally does not have switches
Can use a dictionary but has no order
So can use an ordered dict
from collections import OrderedDict
Items must be added like a list