Developers, les paso un dato. Si actualmente intentas poner Optional en el esquema, le dará error 422 el Post, tienen que poner id : str | None = None, en el Schema para que les puede pasar como dato vacio.
@Spphr03 Жыл бұрын
muchas gracias. No sabia por qué me daba error
@ejsalas11 ай бұрын
Creo que tambien funciona si poner id: Optional[str] = None
@jeanpaulpaucargarcia86548 ай бұрын
adicional a eso tengo un problema de que no guarda los datos, pero no me bota ningun error
@leandrobenitez68078 ай бұрын
utiliza conn.commit() para guardar datos en la db@@jeanpaulpaucargarcia8654
@ferneymontoya43418 ай бұрын
Hola@@jeanpaulpaucargarcia8654 lo puedes solucionar poniendo "conn.commit()" debajo de la línea donde haces el insert. El método commit es necesario para confirmar los cambios en la base de datos.
@marcomorenoag3 жыл бұрын
Hey Coders, saludos 👋🏼 Yo tuve un error con el response_model=list[User], en el minuto 51:11, para solucionarlo importé: from typing import List Posteriormente, empleé dicho objecto y quedó solucionado: @user.get("/users", response_model=List[User]) Excelente tutorial Fazt, muchas gracias por aportar tanto conocimiento a la comunidad 😎
@fidelangelochoa92252 жыл бұрын
graccias por este dato, me ayudo!
@aldomatus60072 жыл бұрын
Gracias Amigo, me sirvió!
@harveycolina-n2yАй бұрын
Excelente, estoy en proceso de aprendizaje, más claro imposible! Aclarada ciertas dudas , seguiremos instruyendonos!
@LuisGutierrez-fz3db Жыл бұрын
Crack con tu video, la verdad me llega que sea rapido y sin tanta salsa a los tacos. He visto otros videos de otros y me aburren hasta la vos. En tu caso Excelente video
@linocesar63283 жыл бұрын
Seguire tus videos hasta que sea viejo, espero que nunca pares de publicar lo nuevo en desarrollo que es lo que te caracteriza, Mil gracias Saludos de Peru, Arequipa
@caespinoza3 жыл бұрын
Increible, justo decidí moverme a FastAPI y me vengo encontrando con este video, muchas gracias FAST.
@kkkkkkkkkkkkkkkk1436 Жыл бұрын
Muy bueno! Yo tuve que cambiar sqlalchemy por otro conector, pero todo funciona de la misma manera!
Bueno, es básicamente el mismo tema :) solo les estoy dando más opciones. Saludos Julian
@moisespineda17892 жыл бұрын
Los entornos virtuales son un quebradero de cabeza
@leopoldoramirezmontes18563 жыл бұрын
Excelente vídeo Fazt. Muchas gracias por compartir tus conocimientos. Voto por un ejemplo de Frontend con Angular . Gracias 👍
@javivlogsgameplays96833 жыл бұрын
Excelente vídeo, estaría genial que un próximo video, hubieras mas tablas e hicieras relaciones de ellas para sacar informes
@ricardomuzio66223 жыл бұрын
Excelente Fazt!!! Me gustaría un ejemplo utilizando Svelte como frontend.
@franciscososa913 жыл бұрын
Groso Fazt! clarisima la explicacion, espero que saques nuevos ejemplos usando este frame.
@th3khandev3 жыл бұрын
Excelente Video, gracias por compartir, todo muy bien explicado, se entiende al 100%
@fpradove Жыл бұрын
Hay varios errores cuando se usa PG (PostgreSQL), el primero no hacia o no se veia el insert agregué lo siguiente: En db.py cnn = engine.connect().execution_options(isolation_level="AUTOCOMMIT") En models users = Table('users', meta, Column('id', Integer, Identity(), primary_key=True), Column('name', String(255)), Column('email', String(255)), Column('password', String(255)) ) meta.create_all(bind=engine, tables=[users]) Modificar esto para que devolviera los registros @user.get('/users') def get_users(): lista = cnn.execute(users.select()).fetchall() rows = [] for t in lista: id = t[0] name = t[1] email = t[2] password = t[3] rows.append( {"id": id, "name": name, "email": email, "password": password}) return rows Para que devuelva el ultimo insertado, ya que lastrowid siempre devuelve 0 @user.post('/users/add') def create_user(user: User): new_user = dict() new_user['name'] = user.name new_user['email'] = user.email new_user['password'] = f.encrypt(user.password.encode('utf-8')).decode('utf-8') print(new_user) r = cnn.execute(users.insert().values(new_user)) print(f"Record # {r.inserted_primary_key}") u = users.select().where(users.c.id == r.inserted_primary_key[0]) lista = cnn.execute(u).fetchall() rows = [] for t in lista: id = t[0] name = t[1] email = t[2] password = t[3] rows.append( {"id": id, "name": name, "email": email, "password": password}) return rows
@2011fatiga Жыл бұрын
Muchas gracias Francisco, ahora si lo hice andar al post. No se guardaban en la bd.
@angelecg3 ай бұрын
Yo le agregue en bloque de codigo el : conn.commit() conn.close() Pero me gusta mas tu aporte, para no andar poniendo lineas extras. Saludos!
@mau9462 жыл бұрын
Excelente video, buena explicación. Podrías hacer un video realizando pruebas unitarias y funcionales? Gracias
@fidelangelochoa92252 жыл бұрын
muchisimas gracias, estoy llevando un curso de FastApi y me faltaba la parte de conectar a Base de datos. pd: me gustaria usaras Vue.js para el frontend
@renemesa4521 Жыл бұрын
Hola Fazt quería preguntarte si tienes algún vídeo con un ejemplo de crud para dos tablas relacionadas de mucho a mucho. Gracias por compartir tus conocimientos. Un saludo
@arnifuentes70552 жыл бұрын
Gracias por el tremendo aporte Fazt!
@fabiansuarez7934 Жыл бұрын
Excelente material, me funcionó todo lo que hiciste, cosa que no me pasó en otros tutoriales. Gracias por esa claridad. Por otro lado, me gustaría si es posible, que expliques cómo podemos desde la API, leer la info del SQL en caso que falle alguna consulta. Por ejemplo intento eliminar un registro que no existe, como me informa el servidor de la database? Y en ese caso, pasarle el código de error al front. Muchas gracias!
@drumsmancl1864 Жыл бұрын
Guarda el resultado de la consulta en una variable y luego busca en ella el error que buscas con una estructura de control de flujo.
@Mariel71912 жыл бұрын
Exceelente video, me ayudo mucho. Gracias
@Manel-pc9my8 ай бұрын
para actualizar la bd, con el post, por ejemplo, añadir un conn.commit()
@carlohvillasmil6667 ай бұрын
Hola, en donde va el conn.commit()???
@abnerlopezruiz23689 ай бұрын
Estuve teniendo el problema que me creaba la tabla pero no me agregaba rows, lo solucione agregando conn.commit() en la funcion def create_user(user: User):
@jacob_mp Жыл бұрын
Hola Fazt, en el minuto 37:46 se me genera este error. Iguamente crea la tabla pero no quiere guardar los datos. Podrias ayudarme? Gracias de antemano. ERROR: Exception in ASGI application Traceback (most recent call last): File "D:\Escritorio\fastapi_project_3\env\Lib\site-packages\fastapi\encoders.py", line 152, in jsonable_encoder data = dict(obj) ^^^^^^^^^ TypeError: cannot convert dictionary update sequence element #0 to a sequence
@abnerlopezruiz23689 ай бұрын
yo lo solucione asi: @user.post("/users") def create_user(user: User): try: new_user = {"name": user.name, "email": user.email} new_user["password"] = f.encrypt(user.password.encode("utf-8")) result = conn.execute(users.insert().values(new_user)) conn.commit() # Obtener el ID del usuario insertado last_inserted_id = result.lastrowid # Consultar el usuario recién insertado y convertirlo a un diccionario inserted_user = conn.execute(users.select().where(users.c.id == last_inserted_id)).first() # Convertir el resultado a un diccionario antes de devolverlo inserted_user_dict = dict(inserted_user._asdict()) return inserted_user_dict except SQLAlchemyError as e: print(str(e)) return {"error": str(e)}
@nowhere20682 ай бұрын
alguien me puede explicar el origen de el error? tengo entendido que como lo pone en el video debería retornar un diccionario pero execute() no retorna directamente un diccionario, por que entonces a él no le dio error? tiene que ver algo con alguna versión?
@alfredomorales3017Ай бұрын
Perfecto, ¿Cómo puedo subir archivos o guardarlo con su representación de código en un campo de la tabla?
@diegoguillen39905 ай бұрын
no hice este mismo protyecto, pero lo utilice para conectar a mi base de datos gracias
@soportepirata60033 жыл бұрын
muy buenos los tres video de fastapi faltaria uno jwt con fastapi
@miguelbarretotorres68503 жыл бұрын
Muchas gracias Fazt, saludos!
@FaztCode3 жыл бұрын
Saludos Miguel! :)
@diegocamilopenaramirez61013 жыл бұрын
Gracias por el tutorial, pregunta ¿Piensas hacer más tutoriales de FastAPI? sobre todo con login y manejo de sesiones
@FaztCode3 жыл бұрын
Hola Diego. Sí, de hecho esta semana tratare de publicar el curso introductorio y tambien varios ejemplos usando un Front de React. y estoy preparando ejemplos usando JWT. tratare de avanzar un poco más rápido para traerles el contenido :)
@diegocamilopenaramirez61013 жыл бұрын
@@FaztCode muchas gracias
@zrjcoding2 жыл бұрын
@@FaztCode Hey, una pregunta: ¿Cómo puedo seleccionar/obtener solo algunos campos de la tabla?? Estoy creando un api para login y quiero validar email y username
@zrjcoding2 жыл бұрын
@@FaztCode Estoy por hacer un deployment en Docker. En localhost la api me funciona bien pero en la imagen de docker no :/.. alguien me ayuda?
@drumsmancl1864 Жыл бұрын
@@zrjcoding los traes todos y al momento de usarlos como método solo usa lo que necesitas.
@rapustin3 жыл бұрын
Sos el mejor fazt! Gracias 😁
@0xWr41th Жыл бұрын
excelente intro a fastapi gracias!
@manuelgarciarodriguez73233 жыл бұрын
Fazt una pregunta para que en mi Dashboard al pinchar en una de sus pestañas por asín decirlo quiero que me lleve a una URL o página como lo hago. Gracias a ti estoy aprendiendo un montón
@CamiloCastroEscorcia3 жыл бұрын
Excelente video, perfecta explicación!
@al1rios3 жыл бұрын
Black is the uncompromising Python code "formatter". By using it, you agree to cede control over the minutiae of hand-formatting.
@asalvaz7 ай бұрын
@fazt code Como hiciste para que te creara routes como un package solo reiniciando el server? eso no me hace a mi tengo que declararlo como paquete manualmente 10:25 (Carpeta py_cache en capeta routes) solo reiniciaste el server, pero yo tengo que crearle una carpeta __init__.py
@oocanto2 жыл бұрын
Excelente tutorial. Muchas gracias.
@FaztCode2 жыл бұрын
A ti por comentar :)
@leonardopatinorodriguez82393 жыл бұрын
Gracias por el video, me gustaria que implementaras pruebas unitarias a este ejemplo.
@mauroezequielbravo2 жыл бұрын
A mi el result.lastrowid no me traia el id. Pero lo solucione con result.inserted_primary_key[0] Saludos desde 🇦🇷
@kikecastor2 жыл бұрын
Fazt, perdon, una pregunta, al final mencionas que haras un video donde explicas la implementacion del frontend consumiendo este tipo de api, si existe ese contenido?
@FaztCode2 жыл бұрын
Aun no lo he publicado, me he olvidado de hacerlo. Esta semana lo publico, el video se llamara FARM Stack (FAST API, React y MYSQL) :)
@marcosname24752 жыл бұрын
@@FaztCode LO ESPERO AUN :(
@JosePron192 жыл бұрын
Hola como va? Muy bueno el video! consulta porque usaste 2 status code distintos? porque no usar directamente el de FastAPI
@Sheogorath4 Жыл бұрын
¿Tienes algún vídeo actualizado de fastapi y sqlalchemy? (Me encanta tu contenido, por cierto. Sirve muchisimo)
@billedsonsquille2 жыл бұрын
hola gran video, para el frontend sería bueno para hacer algo distinto usar HTMX, que opinas?
@GirlDesignTips3 жыл бұрын
Hi Coders 👋 👩💻 👨💻 🤗 The tutorial is great #Fazt👍 Thanks you! 😊👏
@santiagoguillen6417 Жыл бұрын
Muy buenos tus videos, pero se me presento un problema que en el Swager funciona correctamente pero en la base de datos no me actualiza los datos como podría solucionar ese problema? de antemano muchas gracias
@santiagoguillen6417 Жыл бұрын
lo resolvi colocandole un commit() despues del insert
@galaxygameplaysyt6773 Жыл бұрын
Muy buen video. Deberias subir uno donde hagas uso de templates y conexion con MySQL, asi como has hecho con los proyectos de Django
@-ZOLDYCK3 жыл бұрын
Excelente video 😄, que tal una integración junto con vue js? Saludos y un abrazo ✨
@fernandocoelho13343 жыл бұрын
mas tiene video con Vue js de otros.
@JhonnathanManzur3 жыл бұрын
Excelente video. Gracias.
@identiclla11013 жыл бұрын
excelente fazt sube mas contenido de python saludos crack
@ericktucto Жыл бұрын
Fazt como se puede hacer validacion ??? en base al id pasado por parametro ??? por ejemplo, al tener la ruta "/users/200" pydantic no solo valide que es un numero sino que tambien valide que este sea un id en la base de datos ???
@drumsmancl1864 Жыл бұрын
pydantic no es para eso, es para validar el tipo del dato pero no la cotejación con db. Haz eso con sqlalchemy.
@MiguelLopezAriza9 ай бұрын
¡Muchas gracias!
@IzayaOriharaFtg3 жыл бұрын
¿Como se haría un patch? El put pero sin tener que modificar todo el body. No he encontrado información acerca de esto...
@_lucasjose3 жыл бұрын
Capo!
@luismeza60153 жыл бұрын
Ayudame Fazt, al momento de ejecturar uvicorn app:app en el minuto 26:04 tengo un error que dice: "AttributeError: 'APIRouter' object has no attribute 'select" porfa ayuda! saludos!
@luismeza60153 жыл бұрын
Importe el select del sqlalchemy pero no me reconoce el select en la linea de codigo: "return conn.execute(productos.select()).fetchall()"
@desk61733 жыл бұрын
hola fast podrías llegar hacer un video sobre "Aleph JS" este es un framework de deno que permite SSR (esta inspirado en next js)
@eduardospek3 жыл бұрын
¿Cómo puedo subir una foto a la API? ¡Felicitaciones por el contenido! 👊🏽😎🇧🇷
@mau9462 жыл бұрын
Buenas tengo un error persistente en el minuto 26:20 no ha creado mi tabla en la base de datos y no me aparece la funcion fetchall() ni la funcion funcion where() solo el select() y además siempre me sale este error: return connection.execute(role_Table.select()) TypeError: FromClause.select() missing 1 required positional argument: 'self'
@omarescobarcantor5546 Жыл бұрын
TANGO UNA PREGUNTA. YA TENIENDO MI RESTAPI COMO PUEDO USARLA PARA UNA PÁGINA WEB OSEA CON HTML CSS, JS Y ASI PODERLA VER LA FUNCIONALIDAD CON MIS TABLAS EN MI PANEL DE ADMINISTRADOR.
@omarescobarcantor5546 Жыл бұрын
CON UNA TABLA RELACIONADA Y UTILIZANDO IMAGENES.
@omarescobarcantor5546 Жыл бұрын
SERIA MUY BUENA ESA EPLICACION CON FAST API .
@franciscobegliardo94592 жыл бұрын
Pregunta FastAPI esta enfocado mas en la creacion de Apis?, o puedo hacer ponerme ser clon de twitter por ejemplo. Entiendo que se puede, pero tengo q importar un par de cosas más, aparte de un motor de renderizado de templates (como jinja2) que mas necesitaría?. Podrías hacer un video de FastAPI integrado con VueJs .
@franciscobegliardo94592 жыл бұрын
Entiendo que para el ejemplo que di anteriormente conviene Django. Pero quiero aprender un framework de Backend en python y estoy con las pros y las contras de todos y FastAPI es el mas atractivo en cuestion de modernidad y asíncronamente. Alguien me tira una mano?
@mejia4143 жыл бұрын
Amigo puede subir el Github porfavor para mirar ese ejemplo a profundidad porfavor
@beticohernandez95363 жыл бұрын
Hola, esa API como se le hace para un carrito de compras con sesiones?
@facundopocceschi12122 жыл бұрын
Hola Fazt, gracias por el video, esta muy bueno. Te hago una consulta que no logro encontrar respuesta. En el ejemplo tuyo importas desde, por ejemplo, "models/user.py" a "config/db.py". Si yo hago lo mismo tengo problemas porque la carpeta "config" no esta a la misma altura que "user.py". Como lo haces vos?
@drumsmancl1864 Жыл бұрын
Puedes publicar un tree de tu proyecto 🤔
@pedropaz2458 Жыл бұрын
Hola amigo a mi me da el mismo error. Lo pudiste solucionar?
@facundopocceschi1212 Жыл бұрын
@@pedropaz2458 si. Para que puedas importar desde otros directorios sin problemas tenés que tener uvicorn corriendo en modo reload. Para eso ejecutas este comando: uvicorn main:app --reload . Cuando ejecutas ese comando se inicia Uvicorn y eso te permite que las carpetas puedan ser exportadas.
@zrjcoding2 жыл бұрын
Cómo hago consultas con store procedure??
@JoseQuilonAlonso Жыл бұрын
Hola buenas, estoy atascado no consigo que me guarde los registros en la base de datos si la he creado pero no paso de cuando se introduce usuarios con el método post la base de datos siempre esta vacía y al continuar cuando le pides el id me da error y se para, te agradecería si sabes por que. gracias
@im_yisuscrist3963 Жыл бұрын
yo tuve el mismo error, la solucion que encontre es que una vez que haces 'conn.execute(users.insert().values(new_user))' tienes que hacer 'conn.commit()' para que guarde los datos en la base de datos
@sergiocanomartinez5320 Жыл бұрын
@@im_yisuscrist3963muchas gracias, llevaba un buen rato tratando de insertar y no guardaba, con eso se solucionó, gracias eres un crack
@darwintnt2 Жыл бұрын
@@im_yisuscrist3963 Gracias!! funciono perfecto
@Manel-pc9my10 ай бұрын
olee tuuu :) @@im_yisuscrist3963
@jorgegodoy7773 жыл бұрын
Gracias Fazt
@guipe77123 жыл бұрын
Esta muy interesante
@marcocruzadocuadros93113 жыл бұрын
Tío Fazt tengo una duda o no se por donde atajar bien ese problema si me pudieras dar una orientación seria bueno Eh levantado. Mi aplicación de node en Digital Oceam me compre mi dominio lo vincule y todo hasta abre en el navegador, lo que pasa esq en una ruta que tengo hago uso de la API de google drive para guardar un archivo y que me genere una URL del archivo y resien guardalo en MongoDB(mongo desde mongo atlas) la ruta pero cuando levantó mi aplicación denuevo ckn todos los cambios justo esa ruta que hace uso de googleapisno carga y me genera jn error de timeOut, que creas que puede ser No se si me entendiste T_T
@oscarescam3 жыл бұрын
excelente ahora django porfavor
@Darkmaster1989V22 жыл бұрын
Buenísimo
@lucasramos24 Жыл бұрын
Muy buen video
@MundiWorldReal3 жыл бұрын
Hola, solo queria decir que los links de discord estan caidos.
@petersandovalmoreno52133 жыл бұрын
En el min. 37:32 en el response body yo obtengo null. Usando pyodbc para conectarme a sql server, lastrowid siempre me devuelve None.
@petersandovalmoreno52133 жыл бұрын
Pude recuperar el id del último registro insertado con result.inserted_primary_key[0] en lugar de result.lastrowid
@felipevillarroel62592 жыл бұрын
@@petersandovalmoreno5213 un crack!! gracias!! sin embargo posicion 0 de un elemento no me parece la forma optima de recuperar. Alguna razon por la que lastrowid nos devuelva null en sqlalchemy (en mi caso trabaje con postgresql)
@bairongarcia2498 Жыл бұрын
gracias por el tutorial! me sale el siguiente error: AttributeError: 'APIRouter' object has no attribute 'select'
@thenderick74342 жыл бұрын
Alguien que pueda ayudarme? tengo el siguiente error AttributeError: type object 'MetaData' has no attribute 'schema'
@yuberley3 жыл бұрын
¿Hablas rápido o editas la voz? Pregunta existencial!
@drumsmancl1864 Жыл бұрын
Él bebe mucho café y eso está bien, ok? xD
@Angel-zr2qm Жыл бұрын
Consume la api en angular o React
@davidrey5294 Жыл бұрын
me sale este error al ingresar datos con put: [TypeError('cannot convert dictionary update sequence element #0 to a sequence'), TypeError('vars() argument must have __dict__ attribute')] que hago?
@tellin0512 Жыл бұрын
yo lo solucioné con esto: class User(BaseModel): id: Optional [str] name: str email: str password: str class Config: orm_mode = True agregando class Config: orm_mode=True SQLAlchemy no devuelve un diccionario, que es lo que pydantic espera por defecto. Puede configurar su modelo para que también admita la carga desde parámetros orm estándar (es decir, atributos en el objeto en lugar de búsquedas en el diccionario):
@ignaciofincatti2488 Жыл бұрын
@@tellin0512 estimado, tengo le miso error, realice esto y permanece
@tellin0512 Жыл бұрын
@@ignaciofincatti2488 tendrás la pantalla del error
@ricardoburgos1695 Жыл бұрын
Mismo error, me ha sido imposible entender donde falla, segui al pie de la letra el video. Probe todo lo que lei por aca, nada funciona. Saludos.
@luisfelipe-pt5ts3 жыл бұрын
Primer comentario gracias Fatz
@FaztCode3 жыл бұрын
🎉 Felicidades! xD
@facundonieto1598 Жыл бұрын
min 13:10 conexión a base de datos 14:00 instalo pymysql
@erikvargasarostegui94434 ай бұрын
Dato: en mi pc al momento de crear la base de datos no me creaba porque el puerto 3306 no estaba abierto entonces tuve que usar esta linea para crear: docker run --name mymysql -e MYSQL_ROOT_PASSWORD=contrasenna -p 3306:3306 -d mysql:8.0
@dantech78273 жыл бұрын
Frontend con React Native bro
@henryfer003 жыл бұрын
Hola, alguien me pasa un link de discord que no haya expirado? por fa
@fernandofernando92923 жыл бұрын
Sensei ..!
@Nelsonjmoncada3 жыл бұрын
Jaja los esquemas te convierten a diccionario los datos que recibes. Lee la documentación. Tambien puedes vincular el esquema a el ORM para que se linquee el modelo con el esquema. Lee la documentación
@drumsmancl1864 Жыл бұрын
Cuál es tu aporte?
@gerardobaeza97173 жыл бұрын
Voto por un frontend con react y para el back de mongo un frontend de reac-native
@vanongpham39482 жыл бұрын
can you tell me what image of mymysql?
@FaztCode2 жыл бұрын
that is just the name of the container. The image is mysql: hub.docker.com/_/mysql you can run it using this command: docker run --name mymysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql where mypasword is the database password and mymysql is the name of the container instance.