Red de conocimiento informático - Material del sitio web - Cómo usar flask-sqlalchemy para operar la base de datos mysql en python3

Cómo usar flask-sqlalchemy para operar la base de datos mysql en python3

Tome Debian/Ubuntu como ejemplo (asegúrese de tener derechos de administrador):

1 Base de datos relacional

El código es el siguiente:

apt-. get instala el servidor mysql

apt-get instala el cliente mysql

apt-get instala libmysqlclient15-dev

2.python-mysqldb

El código es el siguiente:

apt-get instala python-mysqldb

3. Instalación simple

El código es el siguiente:

wget munity.com/dist/ ez_setup.py

python ez_setup.py

4.MySQL-Python

El código es el siguiente:

Instalación sencilla de MySQL-Python

p>

5.SQLAlchemy

El código es el siguiente:

easy_install SQLAlchemy

6. Después de la instalación, utilice el siguiente código para probar la conexión.

El código es el siguiente:

Importar motor de creación desde sqlalchemy

Importar etiquetas de sesión desde sqlalchemy.orm

DB_CONNECT_ STRING = ' MySQL mysqldb://root:123@localhost/ooxx? ' charset=utf8 '

motor=create-engine(cadena de conexión de base de datos, echo=true)

DB_Session = Creador de sesión(bind=motor)

Sesión = sesión de base de datos ()

7. Operaciones de datos (agregar, eliminar y modificar)

El código es el siguiente:

de la función de importación sqlalchemy, o_, not_

Usuario=usuario(nombre='a')

session.add(usuario)

Usuario=usuario(nombre='b')

session.add(usuario)

usuario=usuario(nombre='a')

session.add(usuario)

usuario= usuario ()

sesión.add(usuario)

session.commit()

consulta = sesión.query(usuario)

Imprimir consulta #Mostrar sentencia SQL.

Imprimir consulta. Declaración #Igual que arriba

Para usuarios en la consulta: #Consulta durante el recorrido

Imprimir nombre de usuario

Imprimir query .all() #Devuelve un objeto similar a una lista.

Al imprimir query.first(). nombre # registro no existe, primero () devolverá Ninguno.

# imprimir consulta.uno(). El nombre # no existe; de ​​lo contrario, se generará una excepción cuando haya varias filas de registros.

Imprimir consulta.filtro(Usuario.id == 2). primero(). nombre

Imprimir consulta.get(2). El nombre # se obtiene a través de la clave principal, que es equivalente a la oración anterior.

ImprimirConsulta. filtro('ID = 2'). primero(). Nombre #Soporta cadenas.

query2 = session.query(nombre de usuario)

Imprimir query2.all() #Cada línea es una tupla.

ImprimirQuery2.limit (1). Todos () #Return como máximo 1 registro.

PrintQuery2.offset(1). Todos () #Regreso del segundo registro.

Imprimir consulta2.order_by(Usuario.nombre). Todo()

Imprimir consulta2.order_by('nombre'). Todo()

Imprimir consulta2.order_by(Usuario.nombre.desc()). Todo()

Imprimir consulta2.order_by('nombre desc '). Todo()

Imprimir sesión.query(id de usuario). order_by(Usuario.nombre.desc(), Usuario.id). Todo()

imprimir consulta 2. filtro(usuario. id == 1). Scalar () #Si hay un registro, devuelve el primer elemento del primer registro.

Imprimir sesión.query('id '). select_from(usuario). filtro('identificación = 1'). escalar()

Imprimir consulta 2. filtro (usuario. id gt; 1, nombre de usuario! = 'a'). Scalar()#sum

consulta 3 = consulta 2. filtro(usuario. id gt; 1) #Múltiples filtros empalmados también son suma.

query3 = query3.filter(User.name!= 'a ')

Imprimir consulta3.scalar()

Imprimir consulta 2. filtro(o _ (usuario.id==1,Usuario.id==2)). all() #o

Imprimir consulta 2. filtro(usuario. id. en _((1, 2))). all() # in

query4 = session.query(User.id)

Imprimir consulta4.filter(User.name == Ninguno). Scalar()

Imprimir consulta4.filter('el nombre es nulo '). escalar()

Imprimir consulta 4. filtro (no _(usuario. nombre == Ninguno)). all() # not

Imprimir consulta4.filtro(¡Nombre.de.usuario!=Ninguno). Todo()

Imprimir consulta4.count()

Imprimir sesión.query(func.count('*)). select_from(usuario). Scalar()

Imprimir sesión . select_from(usuario). Scalar()

Imprimir sesión . escalar()

Imprimir sesión.query(func.count('*)). Filter(User.id gt0).scalar() # filter() contiene usuarios, por lo que no es necesario especificar ninguna tabla.

Imprimir sesión. Consulta (func. Count (' * '). Filtro (User. nombre = ' a '). Límite (1). Escalar () == 1 #Puedes usar limit() para limitar el número de devoluciones de count()

Imprimir sesión.query(func.sum(User.id)).

Imprimir sesión. (func.now()) # func puede seguir cualquier nombre de función. siempre que la base de datos lo admita

Imprimir sesión (func. current _ timestamp()).

Imprimir sesión (func. MD5(usuario. nombre). )).filtro(Usuario.id == 1). escalar()

query.filter(Usuario.id == 1). >

usuario = query.get(1)

Imprimir nombre de usuario

user.name = 'd '

Session.flush() #Escribir a la base de datos, pero no lo envíe

Imprimir query.get(1) nombre

session.delete(user)

session.flush().

Imprimir query.get(1)

session.rollback()

Imprimir query.get(1) nombre

consulta. filtrar(Usuario.id == 1). eliminar()

sesión.commit()

imprimir consulta.get(1)