0% encontró este documento útil (0 votos)
343 vistas17 páginas

Taller ORM con SQLAlchemy y Postgres

SQL Alchemy es un modulo de python que nos permite diseñar y definir una serie de herramientas para interactuar y trabajar como una capa de comunicación entre un sistema informático y una base de datos. En esta ocasión aprenderás a construir las herramientas esenciales para operar con SQLAlchemy

Cargado por

pineiden
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
343 vistas17 páginas

Taller ORM con SQLAlchemy y Postgres

SQL Alchemy es un modulo de python que nos permite diseñar y definir una serie de herramientas para interactuar y trabajar como una capa de comunicación entre un sistema informático y una base de datos. En esta ocasión aprenderás a construir las herramientas esenciales para operar con SQLAlchemy

Cargado por

pineiden
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Taller

La magia del ORM!


Flisol 2017
David Pineda Osorio
& Bruno Garca
Clonar con git este taller
# git clone [Link]
# ejemplo simple: carpeta minibib
# ejemplo complejo: carpeta orm
# tarea para la casa: carpeta biblioteca

Abre el archivo [Link] para que te vayas


guiando.
ORM: Object relational mapping

Un ORM es un sistema que nos permite definir un


esquema de base de datos (schema) con sus
tablas y columnas. Adems nos provee las
herramientas para interactuar entre nuestro
sistema y un motor de base de datos.
Independiente del motor en particular.
Lenguaje Python 3
ORM SQLAlchemy
Database Postgres
IDE EMACS-Geany
Instalar las herramientas

sudo apt-get install python3.5 python3.5-dev


sudo pip3.5 install setuptools
sudo pip3.5 install virtualenv virtualenvwrapper

En archivo ~/.profile o ~/.bashrc poner la definicin del ambiente


virtual:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Proyectos
export VIRTUALENV_PYTHON=/usr/bin/python3.5
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.5
source /usr/local/bin/[Link]

source ~/.profile
Instalacin Db Postgres

apt-get install postgresql-9.4

cd /etc/postgresql/9.4/main

sudo nano pg_hba.conf

Configurar a:

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only


local all all md5
# IPv4 local connections:
host all all [Link]/32 md5
Crear base de datos y usuario
sudo su

su postgres

psql

postgres=# create database biblioteca;


CREATE DATABASE
postgres=# create role escritor;
CREATE ROLE
postgres=# alter role escritor with password 'versos+tristes';
ALTER ROLE
postgres=# grant all privileges on database biblioteca to escritor;
GRANT
postgres=# \connect biblioteca;
You are now connected to database "biblioteca" as user "postgres".
biblioteca=# alter role escritor with login;
ALTER ROLE
biblioteca=#
Crear ambiente virtual
# mkvirtualenv biblioteca
# workon biblioteca
# deactivate biblioteca
# mkdir biblioteca
# cd biblioteca
Crear archivos de trabajo
Usando comando touch
# touch <file>.py
La siguiente lista
-models
-db_session
-manager
-load_data
-validates
-generate_schema
Esquema de Database: Biblioteca
[Link]
Creacin de las tablas como objectos python
Tabla Clase Python (Base)
Cada clase requiere los campos de tabla:
{Numeric, String, Date, Boolean, etc}
Algunas validaciones necesarias:
{email, rut, etc}
create_db.py
Es el archivo que toma el complejo creado en
[Link] y nos genera un cdigo SQL que
crea la base de datos.
Al ejecutar, se conecta al engine Posgres y
crea el schema con sus tablas.

set schema 'biblioteca';


\dt
db_session.py
Es un script muy sencillo que permite levantar
la sesin a la base de dato y utilizarla para
interactuar con ella.

Desde otras partes se usa la instancia


'session'
[Link]
Desde el lado de la interfaz con nuestro sistema
podra considerarse el corazn de nuestro modulo
que implementa el ORM SqlAlchemy.
Nos permite definir y habilitar una serie de
funcionalidades que nos facilitaran el acceso a los
datos y a la edicin de las tablas con nueva
informacin.
Se compone de dos clases: SessionHandler y
SessionBiblioteca, esta ltima hereda de la anterior.
load_data.py
Es un script editado de manera estratgica
para leer de manera categrica y estructurada
una serie de tablas csv para cargarlas en
database.
Utiliza de manera exhaustiva la clase
DictReader del modulo csv, de la librera
estndar de Python.
Manos a la Obra!
Crear models con 3 tablas
Crear la base de datos
Crear manager
Crear load_data
Instalar mdulos adicionales que
usaremos
# pip install psycopg2
# pip install sqlalchemy
# git clone [Link]
# cd rutchile
# python [Link] develop
# git clone [Link]
# python [Link] develop
Referencias
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]

También podría gustarte