Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
fw:elixir [2011/11/24 12:23] alfred |
fw:elixir [2020/05/09 09:25] (actual) |
||
|---|---|---|---|
| Línea 134: | Línea 134: | ||
| aid = Field(UnicodeText, index = True) | aid = Field(UnicodeText, index = True) | ||
| title = Field(UnicodeText, nullable = True) | title = Field(UnicodeText, nullable = True) | ||
| + | </code> | ||
| + | * Podemos indicar que un valor por defecto lo coja de una función: | ||
| + | <code python> | ||
| + | class Article(Entity): | ||
| + | last_updated = Field(DateTime, default=datetime.datetime.now) | ||
| </code> | </code> | ||
| === Propiedades y métodos de las entidades === | === Propiedades y métodos de las entidades === | ||
| * Si se crea el campo identificador automáticamente será accesible desde la propiedad ''id''. | * Si se crea el campo identificador automáticamente será accesible desde la propiedad ''id''. | ||
| * El método ''to_dict()'' devuelve el objeto en formato diccionario. | * El método ''to_dict()'' devuelve el objeto en formato diccionario. | ||
| - | |||
| ==== Relaciones ==== | ==== Relaciones ==== | ||
| Para indicar las relaciones entre clases\tablas utilizaremos las funciones ''ManyToOne'' y ''OneToMany'', y ''ManyToMany'' según la cardinalidad: | Para indicar las relaciones entre clases\tablas utilizaremos las funciones ''ManyToOne'' y ''OneToMany'', y ''ManyToMany'' según la cardinalidad: | ||
| Línea 291: | Línea 295: | ||
| ===== Consultas ===== | ===== Consultas ===== | ||
| Aunque las consultas se basan en las de SQLAlchemy y podemos lanzar con ese formato Elixir también nos agiliza dicha tarea. | Aunque las consultas se basan en las de SQLAlchemy y podemos lanzar con ese formato Elixir también nos agiliza dicha tarea. | ||
| - | + | * [[http://docs.sqlalchemy.org/en/rel_0_8/orm/tutorial.html#common-filter-operators|Operadores]], deberemos importar sqlalchemy: ''from sqlalchemy import desc''. | |
| ==== Consultas básicas ==== | ==== Consultas básicas ==== | ||
| * Recoger todos: ''clase.query.all()'' | * Recoger todos: ''clase.query.all()'' | ||
| Línea 316: | Línea 319: | ||
| q.order_by(desc(Movie.year)).all() | q.order_by(desc(Movie.year)).all() | ||
| </code> | </code> | ||
| + | ==== Realizar un join ==== | ||
| + | <code python> | ||
| + | PlayerAchievements.query.filter(PlayerAchievements.player == p).filter(PlayerAchievements.teamconfig == t).all() | ||
| + | </code> | ||
| ==== Otros ==== | ==== Otros ==== | ||
| === Consultar por identificador === | === Consultar por identificador === | ||
| Línea 332: | Línea 338: | ||
| print result['name'] | print result['name'] | ||
| </code> | </code> | ||
| + | <code python> | ||
| + | conn = metadata.bind.engine.connect() | ||
| + | conn.execute('delete from css_actions') | ||
| + | </code> | ||
| ===== Avanzado ===== | ===== Avanzado ===== | ||
| ==== Sesiones ==== | ==== Sesiones ==== | ||