最新回答 / duskash
我来推荐一个orm 库, tortoise-orm这个支持异步操作 sqlite3、mysql、postgresql 三种数据库, 配置和部署都比 sqlalchemy 简单你说的这个问题, tortoise-orm 里面可以在初始化数据库的时候<...code...> 到这里, 后面的 `connection1` 等就可以用 orm 操作了
最赞回答 / duskash
这个问题搞了我一晚上, 终于找到问题出在哪了……<...code...>这段代码里, 当 city 没有值的时候, 是走下面一条, 注意到最后一行有一个 .all() 这个方法会传回真实数据的 list反观 if 为真的时候, 结尾没有 .all(), 这个时候返回的是一个 Query, 不是 list, 自然也无法被 fastapi 转为有意义的输出, 就报错了. 我是加上 .all() 之后, 就可以正常跑了
2021-04-13
最赞回答 / duskash
新版本的 sqlalchemy 丢弃了 __mappter_args__ 当中设置的方法应当用 db.query().order_by() 直接在 Query 对象后面显示地调用 order_by 函数这节课里, 有一张 City 表 和一张 Data 表, 对应的 crud 方法里面db.query(models.City).order_by(models.City.province).offset().limit().all()db.query(models.Data).order_by(models...
2021-04-07
最新回答 / 虾叔叔
limit: int = None是将None以int形式赋值给limit,可能会报错limit: Optional[int] = None是将默认值设置为 None 来声明可选查询参数
2021-03-31
最赞回答 / OneIsAll_
改成这样:
return db.query(models.Data).join(models.City).filter(models.City.province == city).all()
2021-03-28
补个坑:
使用mysql按照视频代码出现了编码错误问题
UnicodeEncodeError: 'charmap' codec can't encode character '\u7701' in posit
不要怀疑,不是你代码写错了。
解决方法:
engine = create_engine(SQLALCHEMY_DATABASE_URL, encoding='utf-8', echo=True)=》
engine = create_engine('mysql://user:password@127.0.0.1:3306/cll?charset=utf8', echo=True)
使用mysql按照视频代码出现了编码错误问题
UnicodeEncodeError: 'charmap' codec can't encode character '\u7701' in posit
不要怀疑,不是你代码写错了。
解决方法:
engine = create_engine(SQLALCHEMY_DATABASE_URL, encoding='utf-8', echo=True)=》
engine = create_engine('mysql://user:password@127.0.0.1:3306/cll?charset=utf8', echo=True)
2021-03-26