![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
flask
文章平均质量分 52
flask学习记录
joker_zsl
人生的意义是什么?让别人不用走自己曾走过的弯路,大概也算是吧。
展开
-
flask踩坑记录:sqlalchemy使用paginate出现Object of type Pagination is not JSON serializable
在做分页接口时出现了Object of type Pagination is not JSON serializable,因为JSON的JSONEncoder不认识Pagination对象。对象不能序列化的问题,在这篇文章中有讲过:TypeError: Object of type XXX is not JSON serializable为了让接口输出的json结果更美观,把页面的信息放在同一个key下,在序列化之前先进行一次处理。用的是装饰器来实现:from functools import w原创 2022-03-12 18:57:30 · 1758 阅读 · 0 评论 -
flask 把日志输出到数据库中
我们使用不同的Handler可以把日志输出到不同的地方,比如使用StreamHandler把日志输出到控制台上;使用FileHandler把日志输出到文件里。那我们同样可以把日志输出到数据库中,只需要自己实现一个Handler日志输出到数据库DatabaseLogHandler的实现:import sysimport loggingimport pymysqlimport tracebackclass DatabaseLogHandler(logging.Handler):原创 2022-03-12 11:56:33 · 2456 阅读 · 0 评论 -
flask踩坑记录:sqlalchemy出现DetachedInstanceError的解决方法
最近写flask遇到了sqlalchemy抛出DetachedInstanceError异常sqlalchemy.orm.exc.DetachedInstanceError: Instance <StockMonitor at 0x2139afa1508> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me原创 2022-03-12 11:29:17 · 3513 阅读 · 2 评论 -
flask踩坑记录:flask的响应结果总是按首字母排序
开发时发现接口响应的结果总是按字段的首字母进行排序,看起来十分难受。这是Flask默认配置造成的,想要响应的结果不按首字母排序,只需修改一个配置即可。未修改配置前(按首字母排序):修改配置后(保持字典定义时的顺序):app.config['JSON_SORT_KEYS'] = False这样看着就顺眼多了但是Flask文档中不建议这么做。默认情况下,Flask将以排序键的方式序列化JSON对象。这样做是为了确保独立于字典的哈希种子,返回值将保持一致,以免浪费外部HTTP缓存原创 2021-05-06 13:58:15 · 499 阅读 · 1 评论 -
flask踩坑记录:flask_migrate迁移数据库出现 1050 “Table ‘xxxx‘ already exists“
模型新增字段后,用flask-sqlalchemy迁移数据库的时候总是出现"Table 'xxxx' already exists"的错误提示这里记录下解决的过程:从报错推测,问题的原因应该是迁移文件中的语句是cerate表,但是实际想要的只是增加几个字段为什么每次生成的迁移文件都是创建表,而不是新增字段呢?看到一个文章中提到是数据库引擎的问题:https://blog.csdn.net/qq_38187188/article/details/105825964最初 SQLALCHE原创 2021-04-23 12:46:26 · 1521 阅读 · 2 评论 -
flask踩坑记录:flask_migrate生成迁移文件时总是缺少新增加的模型信息
最近学习flask,进行数据库迁移的时候,发现使用了生成迁移文件的命令后,生成的新迁移文件总是只有原来的model部分python manager.py db migrate百度一圈之后才在一个文章里看到有提到一句注意事项:在生成迁移文件前,要把数据库模型导入到manage.py文件里,然后才能找得到......然后重新生成迁移文件就正常了行吧......记录一下这个小小的点.....只是奇怪以前也没导入过,为什么生成的新迁移文件里会有原来的模型信息...原创 2021-04-14 09:51:14 · 492 阅读 · 0 评论 -
flask踩坑记录:flask_migrate迁移数据库出现 Target database is not up to date
在使用flask_migrate做数据库迁移时出现 Target database is not up to date 的报错这是数据库记录的版本号和迁移文件中记录的版本号不一致导致的找到最新的迁移文件,把版本号更新到数据库中然后再重新生成迁移文件即可...原创 2021-04-13 22:36:09 · 412 阅读 · 0 评论 -
flask踩坑记录:Flask-Restful在非调试模式下接管Flask的异常处理
在学习Flask-Restful写API的时候发现了一个奇怪的现象:当pycharm运行flask时,debug模式和非debug模式下,相同的代码有不同的表现。非debug模式:故意抛出的自定义异常,竟然报出了HTTP错误。debug模式:在才是想要的报错。查找资料之后发现,原来是Flask-Restful的问题。非debug模式下,自定义异常被@api.representation统一处理了,没有经过@app.errorhandler,所以才会有两种模式下原创 2021-01-21 21:51:43 · 633 阅读 · 3 评论 -
flask踩坑记录:‘No application found. Either work inside a view function or push‘
全部异常堆栈:异常堆栈分析:从最后的'No application found. Either work inside a view function or push'看出这是flask_sqlalchemy抛出的异常:没有找到应用,需要在视图函数中或者压入到应用上下文中。百度了一手才知道这是因为sqlalchemy运行时脱离的上下文环境。如果sqlalchemy的对象是在flask视图函数中工作,是会处于上下文环境,但我是在视图函数外使用的sqlalchemy对象。在导入视图时,引原创 2021-01-21 21:33:54 · 2747 阅读 · 0 评论