Flask运行时,打开py文件所在目录下的sqlite文件,报错
我刚刚使用flask,想做一个简单的webservice,代码如下:
@app.route('/compareimei',methods=['POST'])
def hello_world():
#获取post的imei号
imei = request.form['imei']
sql = sqlite3.connect('UpdateInfo.db')
cr = sql.cursor()
try:
#找到数据库中相应imei号对应的True or False值
value = cr.execute('select Enable from IMEIList where IMEI=?',[imei]).fetchone()
if value != None:
return value[0]
else:
return 'none'
except sqlite3.OperationalError() as e:
return e
逻辑比较简单,就是post imei号给127.0.0.1:8080/compareimei这个URL地址,获取返回值
结果在运行的时候,发现一直报错
OperationalError: no such table: IMEIList
而我的db文件和py文件的结构是这样的
于是我就在当前目录下,建立一个新的py文件,把数据库相关的代码写入,测试发现能正常获取到数据库中的值
再回到flask的py文件中,我发现如果db文件使用绝对路径,就正常了
@app.route('/compareimei',methods=['POST'])
def hello_world():
#获取post的imei号
imei = request.form['imei']
#sql = sqlite3.connect('UpdateInfo.db')
sql = sqlite3.connect('/Users/lizhao/Documents/untitled/UpdateInfo.db')**
cr = sql.cursor()
try:
#找到数据库中相应imei号对应的True or False值
value = cr.execute('select Enable from IMEIList where IMEI=?',[imei]).fetchone()
if value != None:
return value[0]
else:
return 'none'
except sqlite3.OperationalError() as e:
return e
请问,为什么在flask的py文件中就必须使用绝对路径,而不能使用相对路径呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是可以使用的,你可以测试一下,使用相对路径,db文件生成在哪个目录,那应该就是flask使用的project目录,而你自己的db文件有数据库,但是不是flask用的,你在flask生成的db文件中创建,或者根据flask使用的project目录,重新修改你代码中的db目录也可以