最近在学习Flask框架的时候 遇到一些小坑 现在总结一下 如果需要就看一下
1.按着案例把代码敲出来后 开始了初始化sqllite的数据库,即单独执行这个函数 init_db()
发现一直说不能创建,后面发现大概有两个原因:
第一个主要的就是下面这个DATABASE配置的值需要是绝对路径,如果不是绝对路径,可能会出现下面这个报错
sqlite3.OperationalError: unable to open database file
第二个原因可能是比较粗心 在执行shell命令行时,没有进入到项目当前的路径。一般是第一个原因
2.创建完db文件后,开始测试代码,发现一直报错,最初最主要的原因还是那个g环境变量里面的db,
案例贴出来的代码中没有对这个db进行任何赋值,所以在app请求之前加入对db的连接
@app.before_request def before_request(): g.db = connect_db()3.加完后又出现了一个错误:
大概的意思是close_db()这个函数takes 0 positional arguments but 1 was given报错,然后找了下解决方法,发现需要加个
自带参数,即close_db(self)
4.然后代码就可以跑了 接下来还有个小问题就是insert那里 由于id创建的时候是int型自增,所以sql需要给id弄个null值,即
基本都是些比较小的麻烦,自己找也可以找出来,这里仅仅是个总结