{"id":1533,"date":"2024-11-19T00:38:54","date_gmt":"2024-11-19T03:38:54","guid":{"rendered":"https:\/\/martafagundez.com\/codevolution\/?p=1533"},"modified":"2025-04-17T23:49:43","modified_gmt":"2025-04-18T02:49:43","slug":"que-es-sqlalchemy","status":"publish","type":"post","link":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/","title":{"rendered":"Qu\u00e9 es SQLAlchemy"},"content":{"rendered":"\n<p>Cuando se trata de gestionar bases de datos en proyectos de software, los desarrolladores buscamos herramientas que simplifiquen el proceso y mantengan la eficiencia. <strong><a href=\"https:\/\/www.sqlalchemy.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">SQLAlchemy<\/a><\/strong> es una de las bibliotecas m\u00e1s populares en el ecosistema de Python para interactuar con bases de datos. <\/p>\n\n\n\n<p>Pero \u00bfqu\u00e9 es exactamente SQLAlchemy, c\u00f3mo funciona, y <strong>por qu\u00e9 deber\u00edas considerarlo para tu pr\u00f3ximo proyecto<\/strong>? En este art\u00edculo, exploraremos las bases de SQLAlchemy y sus ventajas.<\/p>\n\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h2 class=\"simpletoc-title\">Tabla de contenidos<\/h2>\n<style>html { scroll-behavior: smooth; }<\/style><ul class=\"simpletoc-list\">\n<li><a href=\"#que-es-sqlalchemy\">\u00bfQu\u00e9 es SQLAlchemy?<\/a>\n\n<\/li>\n<li><a href=\"#como-funciona-sqlalchemy\">\u00bfC\u00f3mo funciona SQLAlchemy?<\/a>\n\n\n<ul><li>\n<a href=\"#ejemplo-basico\">Ejemplo b\u00e1sico<\/a>\n\n<\/li>\n<\/ul>\n<li><a href=\"#principales-beneficios-de-sqlalchemy\">Principales beneficios de SQLAlchemy<\/a>\n\n<\/li>\n<li><a href=\"#cuando-deberias-usar-sqlalchemy\">\u00bfCu\u00e1ndo deber\u00edas usar SQLAlchemy?<\/a>\n\n<\/li>\n<li><a href=\"#conclusion\">Conclusi\u00f3n<\/a>\n<\/li><\/ul>\n\n\n<div style=\"height:80px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"que-es-sqlalchemy\">\u00bfQu\u00e9 es SQLAlchemy?<\/h2>\n\n\n<p>SQLAlchemy es una biblioteca de <strong>mapeo objeto-relacional<\/strong> (ORM, por sus siglas en ingl\u00e9s) para Python, que permite interactuar con bases de datos relacionales de forma eficiente y flexible. Se lanz\u00f3 en 2006 y ha ganado una gran popularidad gracias a su dise\u00f1o modular y a su capacidad para adaptarse tanto a aplicaciones simples como a sistemas complejos.<\/p>\n\n\n\n<p>SQLAlchemy ofrece dos enfoques principales para trabajar con bases de datos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Core SQLAlchemy (SQLAlchemy Core):<\/strong> Proporciona una capa m\u00e1s cercana al lenguaje SQL tradicional, ideal para quienes prefieren trabajar directamente con sentencias SQL, pero con las ventajas de una abstracci\u00f3n en Python.<\/li>\n\n\n\n<li><strong>Object Relational Mapper (ORM):<\/strong> Permite mapear tablas de bases de datos a clases y filas a objetos en Python, haciendo que las operaciones sobre los datos sean m\u00e1s intuitivas y expresivas.<\/li>\n<\/ol>\n\n\n\n<p>Ambos enfoques pueden utilizarse de manera conjunta o separada, dependiendo de las necesidades del proyecto.<\/p>\n\n\n\n<div style=\"height:80px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"como-funciona-sqlalchemy\">\u00bfC\u00f3mo funciona SQLAlchemy?<\/h2>\n\n\n<p>SQLAlchemy act\u00faa como un puente entre Python y tu base de datos. Este puente se basa en dos componentes principales:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>El Motor de Base de Datos (Engine):<\/strong> Es el n\u00facleo de SQLAlchemy. Este componente se encarga de manejar la conexi\u00f3n a la base de datos, ejecutar consultas y devolver los resultados. Puedes conectarte a bases de datos como PostgreSQL, MySQL, SQLite, Oracle, y muchas m\u00e1s.<\/li>\n\n\n\n<li><strong>El Mapeo Objeto-Relacional (ORM):<\/strong> Permite representar las tablas de la base de datos como clases de Python, de modo que puedas manipular datos como si fueran objetos de Python en lugar de filas y columnas.<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n\n\n<h3 class=\"wp-block-heading\" id=\"ejemplo-basico\">Ejemplo b\u00e1sico<\/h3>\n\n\n<p>Imagina que tienes una tabla llamada <code>usuarios<\/code> con las columnas <code>id<\/code>, <code>nombre<\/code>, y <code>correo<\/code>. Usando SQLAlchemy ORM, podr\u00edas representar esta tabla de la siguiente manera:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#282A36;font-style:italic;color:#f6f6f4\"><span style=\"border-bottom:1px solid rgba(251, 251, 239, 0.2)\">app.py<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"from sqlalchemy import create_engine, String\nfrom sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, sessionmaker\n\n# Definimos el motor de base de datos\nengine = create_engine('sqlite:\/\/\/mi_base_de_datos.db')\n\n# Base para definir modelos\nclass Base(DeclarativeBase):\n    pass\n\n# Clase que mapea la tabla &quot;usuarios&quot;\nclass Usuario(Base):\n    __tablename__ = 'usuarios'\n    id: Mapped[int] = mapped_column(primary_key=True)\n    nombre: Mapped[str] = mapped_column(String(40))\n    correo: Mapped[str] = mapped_column(String(30))\n\n# Creaci\u00f3n de la tabla en la base de datos\nBase.metadata.create_all(engine)\n\n# Sesi\u00f3n para interactuar con la base de datos\nSession = sessionmaker(bind=engine)\nsession = Session()\n\n# Insertar un nuevo usuario\nnuevo_usuario = Usuario(nombre='Juan', correo='juan@example.com')\nsession.add(nuevo_usuario)\nsession.commit()\n\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> sqlalchemy <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> create_engine, String<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">from<\/span><span style=\"color: #F6F6F4\"> sqlalchemy.orm <\/span><span style=\"color: #F286C4\">import<\/span><span style=\"color: #F6F6F4\"> DeclarativeBase, Mapped, mapped_column, sessionmaker<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\"># Definimos el motor de base de datos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">engine <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> create_engine(<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">sqlite:\/\/\/mi_base_de_datos.db<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\"># Base para definir modelos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">class<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #97E1F1\">Base<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #97E1F1; font-style: italic\">DeclarativeBase<\/span><span style=\"color: #F6F6F4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">pass<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\"># Clase que mapea la tabla &quot;usuarios&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">class<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #97E1F1\">Usuario<\/span><span style=\"color: #F6F6F4\">(<\/span><span style=\"color: #97E1F1; font-style: italic\">Base<\/span><span style=\"color: #F6F6F4\">):<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    __tablename__ <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">usuarios<\/span><span style=\"color: #DEE492\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #97E1F1\">id<\/span><span style=\"color: #F6F6F4\">: Mapped[<\/span><span style=\"color: #97E1F1; font-style: italic\">int<\/span><span style=\"color: #F6F6F4\">] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> mapped_column(<\/span><span style=\"color: #FFB86C; font-style: italic\">primary_key<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #BF9EEE\">True<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    nombre: Mapped[<\/span><span style=\"color: #97E1F1; font-style: italic\">str<\/span><span style=\"color: #F6F6F4\">] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> mapped_column(String(<\/span><span style=\"color: #BF9EEE\">40<\/span><span style=\"color: #F6F6F4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    correo: Mapped[<\/span><span style=\"color: #97E1F1; font-style: italic\">str<\/span><span style=\"color: #F6F6F4\">] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> mapped_column(String(<\/span><span style=\"color: #BF9EEE\">30<\/span><span style=\"color: #F6F6F4\">))<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\"># Creaci\u00f3n de la tabla en la base de datos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">Base.metadata.create_all(engine)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\"># Sesi\u00f3n para interactuar con la base de datos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">Session <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> sessionmaker(<\/span><span style=\"color: #FFB86C; font-style: italic\">bind<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\">engine)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">session <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> Session()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\"># Insertar un nuevo usuario<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">nuevo_usuario <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> Usuario(<\/span><span style=\"color: #FFB86C; font-style: italic\">nombre<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">Juan<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #FFB86C; font-style: italic\">correo<\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #E7EE98\">juan@example.com<\/span><span style=\"color: #DEE492\">&#39;<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">session.add(nuevo_usuario)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">session.commit()<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><span style=\"display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#282A36;color:#ebebe6;font-size:12px;line-height:1;position:relative\">Python<\/span><\/div>\n\n\n\n<p>En este ejemplo, SQLAlchemy maneja toda la complejidad del SQL subyacente, permitiendo que te enfoques en escribir c\u00f3digo Python claro y conciso.<\/p>\n\n\n\n<div style=\"height:80px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"principales-beneficios-de-sqlalchemy\">Principales beneficios de SQLAlchemy<\/h2>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Flexibilidad:<\/strong> SQLAlchemy no te fuerza a usar el ORM. Puedes elegir trabajar directamente con SQLAlchemy Core si prefieres una mayor proximidad al SQL tradicional.<\/li>\n\n\n\n<li><strong>Soporte para m\u00faltiples bases de datos:<\/strong> Cambiar de una base de datos a otra, como de SQLite a PostgreSQL, suele requerir cambios m\u00ednimos en el c\u00f3digo.<\/li>\n\n\n\n<li><strong>Eficiencia:<\/strong> SQLAlchemy incluye caracter\u00edsticas avanzadas como <em>lazy loading<\/em> y <em>eager loading<\/em> para optimizar el acceso a los datos.<\/li>\n\n\n\n<li><strong>Extensibilidad:<\/strong> Puedes crear funciones personalizadas, tipos de datos y extensiones seg\u00fan las necesidades de tu proyecto.<\/li>\n\n\n\n<li><strong>Comunidad activa:<\/strong> SQLAlchemy tiene una documentaci\u00f3n completa y una comunidad amplia, lo que facilita encontrar recursos y soluciones a problemas comunes.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:80px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"cuando-deberias-usar-sqlalchemy\">\u00bfCu\u00e1ndo deber\u00edas usar SQLAlchemy?<\/h2>\n\n\n<p>SQLAlchemy es ideal para proyectos de cualquier tama\u00f1o que requieran interactuar con bases de datos relacionales. Es especialmente \u00fatil si:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tu aplicaci\u00f3n necesita manejar relaciones complejas entre tablas.<\/li>\n\n\n\n<li>Prefieres abstraer gran parte del SQL mediante un enfoque orientado a objetos.<\/li>\n\n\n\n<li>Buscas portabilidad entre distintos sistemas de bases de datos.<\/li>\n<\/ul>\n\n\n\n<p>Sin embargo, si tu proyecto es peque\u00f1o y s\u00f3lo necesitas realizar consultas simples, SQLAlchemy podr\u00eda ser excesivo, y podr\u00edas considerar alternativas m\u00e1s ligeras, como <strong>Peewee<\/strong>.<\/p>\n\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusi\u00f3n<\/h2>\n\n\n<p>En este art\u00edculo hemos explorado qu\u00e9 es y c\u00f3mo funciona SQLAlchemy, una herramienta poderosa que combina la flexibilidad del SQL tradicional con la simplicidad de un ORM. <\/p>\n\n\n\n<p>Ya sea que trabajes en una aplicaci\u00f3n peque\u00f1a o en un sistema empresarial grande, SQLAlchemy te proporciona las herramientas necesarias para <strong>gestionar tu base de datos de manera eficiente<\/strong>.<\/p>\n\n\n\n<p>\u00bfHas usado SQLAlchemy en tus proyectos? \u00a1Comparte tus experiencias en los comentarios!\ud83d\udc69\u200d\ud83d\udcbb<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Cuando se trata de gestionar bases de datos en proyectos de software, los desarrolladores buscamos herramientas que simplifiquen el proceso y mantengan la eficiencia. SQLAlchemy&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[39,27,42,52,53],"tags":[35],"class_list":["post-1533","post","type-post","status-publish","format-standard","hentry","category-backend","category-bases-de-datos","category-desarrollo-web","category-python","category-sqlalchemy","tag-back-end"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Qu\u00e9 es SQLAlchemy - CODEvolution<\/title>\n<meta name=\"description\" content=\"Descubre qu\u00e9 es SQLAlchemy, la popular biblioteca de Python para simplificar la gesti\u00f3n de bases de datos.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Qu\u00e9 es SQLAlchemy - CODEvolution\" \/>\n<meta property=\"og:description\" content=\"Descubre qu\u00e9 es SQLAlchemy, la popular biblioteca de Python para simplificar la gesti\u00f3n de bases de datos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/\" \/>\n<meta property=\"og:site_name\" content=\"CODEvolution\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-19T03:38:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-18T02:49:43+00:00\" \/>\n<meta name=\"author\" content=\"Marta Fag\u00fandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marta Fag\u00fandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/\"},\"author\":{\"name\":\"Marta Fag\u00fandez\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\"},\"headline\":\"Qu\u00e9 es SQLAlchemy\",\"datePublished\":\"2024-11-19T03:38:54+00:00\",\"dateModified\":\"2025-04-18T02:49:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/\"},\"wordCount\":665,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\"},\"keywords\":[\"Back End\"],\"articleSection\":[\"Back End\",\"Bases de Datos\",\"Desarrollo Web\",\"Python\",\"SQLAlchemy\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/\",\"url\":\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/\",\"name\":\"Qu\u00e9 es SQLAlchemy - CODEvolution\",\"isPartOf\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#website\"},\"datePublished\":\"2024-11-19T03:38:54+00:00\",\"dateModified\":\"2025-04-18T02:49:43+00:00\",\"description\":\"Descubre qu\u00e9 es SQLAlchemy, la popular biblioteca de Python para simplificar la gesti\u00f3n de bases de datos.\",\"breadcrumb\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/martafagundez.com\/codevolution\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Qu\u00e9 es SQLAlchemy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#website\",\"url\":\"https:\/\/martafagundez.com\/codevolution\/\",\"name\":\"CODEvolution\",\"description\":\"Blog de Marta Fag\u00fandez\",\"publisher\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/martafagundez.com\/codevolution\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1\",\"name\":\"Marta Fag\u00fandez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png\",\"contentUrl\":\"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png\",\"width\":603,\"height\":603,\"caption\":\"Marta Fag\u00fandez\"},\"logo\":{\"@id\":\"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/\"},\"description\":\"Aqu\u00ed comparto algunos de mis aprendizajes como desarrolladora web. Si alguno de mis art\u00edculos te ha resultado \u00fatil, me alegrar\u00eda saberlo ;)\",\"sameAs\":[\"https:\/\/martafagundez.com\",\"https:\/\/www.linkedin.com\/in\/martafagundezrodriguez\",\"https:\/\/www.youtube.com\/@martafagundez\"],\"url\":\"https:\/\/martafagundez.com\/codevolution\/author\/marta\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Qu\u00e9 es SQLAlchemy - CODEvolution","description":"Descubre qu\u00e9 es SQLAlchemy, la popular biblioteca de Python para simplificar la gesti\u00f3n de bases de datos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/","og_locale":"es_ES","og_type":"article","og_title":"Qu\u00e9 es SQLAlchemy - CODEvolution","og_description":"Descubre qu\u00e9 es SQLAlchemy, la popular biblioteca de Python para simplificar la gesti\u00f3n de bases de datos.","og_url":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/","og_site_name":"CODEvolution","article_published_time":"2024-11-19T03:38:54+00:00","article_modified_time":"2025-04-18T02:49:43+00:00","author":"Marta Fag\u00fandez","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Marta Fag\u00fandez","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#article","isPartOf":{"@id":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/"},"author":{"name":"Marta Fag\u00fandez","@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1"},"headline":"Qu\u00e9 es SQLAlchemy","datePublished":"2024-11-19T03:38:54+00:00","dateModified":"2025-04-18T02:49:43+00:00","mainEntityOfPage":{"@id":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/"},"wordCount":665,"commentCount":0,"publisher":{"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1"},"keywords":["Back End"],"articleSection":["Back End","Bases de Datos","Desarrollo Web","Python","SQLAlchemy"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/","url":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/","name":"Qu\u00e9 es SQLAlchemy - CODEvolution","isPartOf":{"@id":"https:\/\/martafagundez.com\/codevolution\/#website"},"datePublished":"2024-11-19T03:38:54+00:00","dateModified":"2025-04-18T02:49:43+00:00","description":"Descubre qu\u00e9 es SQLAlchemy, la popular biblioteca de Python para simplificar la gesti\u00f3n de bases de datos.","breadcrumb":{"@id":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/martafagundez.com\/codevolution\/que-es-sqlalchemy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/martafagundez.com\/codevolution\/"},{"@type":"ListItem","position":2,"name":"Qu\u00e9 es SQLAlchemy"}]},{"@type":"WebSite","@id":"https:\/\/martafagundez.com\/codevolution\/#website","url":"https:\/\/martafagundez.com\/codevolution\/","name":"CODEvolution","description":"Blog de Marta Fag\u00fandez","publisher":{"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/martafagundez.com\/codevolution\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/3e1e66d60048c83d5dff039f53b615e1","name":"Marta Fag\u00fandez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/","url":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png","contentUrl":"https:\/\/martafagundez.com\/codevolution\/wp-content\/uploads\/2023\/08\/marta_fagundez_developer_avatar1.png","width":603,"height":603,"caption":"Marta Fag\u00fandez"},"logo":{"@id":"https:\/\/martafagundez.com\/codevolution\/#\/schema\/person\/image\/"},"description":"Aqu\u00ed comparto algunos de mis aprendizajes como desarrolladora web. Si alguno de mis art\u00edculos te ha resultado \u00fatil, me alegrar\u00eda saberlo ;)","sameAs":["https:\/\/martafagundez.com","https:\/\/www.linkedin.com\/in\/martafagundezrodriguez","https:\/\/www.youtube.com\/@martafagundez"],"url":"https:\/\/martafagundez.com\/codevolution\/author\/marta\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts\/1533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/comments?post=1533"}],"version-history":[{"count":19,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts\/1533\/revisions"}],"predecessor-version":[{"id":1760,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/posts\/1533\/revisions\/1760"}],"wp:attachment":[{"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/media?parent=1533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/categories?post=1533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/martafagundez.com\/codevolution\/wp-json\/wp\/v2\/tags?post=1533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}