《Flask Web开发》这本书中的一些坑 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 网站建设 >

《Flask Web开发》这本书中的一些坑

发表时间:2018-2-8

发布人:葵宇科技

浏览次数:36

书的代码有点旧,github地址的代码是新的,不过有的还是会报错,我觉得也有可能是作者用心良苦,因为找bug的时候,我学到了不少东西,23333。

1.书上不少代码都是基于 python manager.py shell来演示的。不过github的是基于Flask shell的,所以玩法要参考新手册

新代码里面主文件也没有manager.py,而是flasky.py

所以python manager.py shell就得换成这样的写法。

2.git 8b那个分支的代码,运行是报错的

说是查不到users表,看了下配置文件,默认运行是dev模式,dev模式下的sqlite文件都没有生成,不报错就奇怪了,要在app工厂里面加上db.create_all(),当然也可以在shell里面手动运行这个代码,放在工厂里面也没有关系,因为如果数据库文件已经存在db.create_all()什么都不会做的,至于会不会影响性能还不知道。

直接加db.create_all() 报错: No application found. Either work inside a view function or push an application context.

那肯定是没有上下文了。

可以用with app.app_context()或者app_context.push()的方法来引入上下文。

不过push的方法是要注意的,每次app.app_context()返回的上下文是不同的对象,并不是单例,所以要有一个变量才存储它,用完pop,而不能这样:


正确的是:


这样就不会有什么问题。

3.待续。

相关案例查看更多