Flask——server.py引⼊其他python⽂件
问题描述
  今天⽤Flask写web项⽬时出现了⼀个问题:AttributeError: 'function' object has no attribute 'check',即在server.py中引⽤其他python⽂件失败,不能调⽤其他python⽂件的函数。
  2020/6/10。今天写另⼀个flask项⽬,发现全局引⽤的⽂件,其函数也能在注册路由中使⽤,那为什么之前就不⾏呢
  2020/6/11。我好像知道为啥了。。。可能是我把⽂件名和函数名写重了,都⽤的check,哪个近就按哪个算?
解决⽅法
  我⼀开始是在server.py开头引⼊的python⾃定义模块,然后在注册路由的函数中使⽤⾃定义的函数,结果⼀直报AttributeError。百度搜索未发现解决⽅法(也可能是我的搜索关键词没⽤对?)。后来尝试将引⼊⾃定义模块的语句放到注册路由的函数中、调⽤函数的语句前,发现正常运⾏。⽰例如下:
@ute('/check')
def check():
expression = ("expression", default="")
import check
python怎么读取py文件result = check.checkExpression(expression)
return result
结论
  长个教训,以后创建⽂件必须⾸字母⼤写,以防⽌函数名跟⽂件名冲突。
如果在函数外引⼊了⼀个⽂件,就不能定义与要引⼊的⽂件名相同的函数,否则会报错!
  如果⾮要定义与引⼊⽂件相同名称的函数,可以在调⽤⾃定义模块函数的语句上⼀⾏引⼊⾃定义模块。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。