zoukankan      html  css  js  c++  java
  • 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。百度搜索未发现解决方法(也可能是我的搜索关键词没用对?)。后来尝试将引入自定义模块的语句放到注册路由的函数中、调用函数的语句前,发现正常运行。示例如下:

    @app.route('/check')
    def check():
        expression = request.args.get("expression", default="")
        import check
        result = check.checkExpression(expression)
        return result

    结论

      长个教训,以后创建文件必须首字母大写,以防止函数名跟文件名冲突。

           如果在函数外引入了一个文件,就不能定义与要引入的文件名相同的函数,否则会报错!

      如果非要定义与引入文件相同名称的函数,可以在调用自定义模块函数的语句上一行引入自定义模块。

      

  • 相关阅读:
    微信小游戏5.2.2 在子项目中使用EUI制作排行榜报错 wx.getFileSystemManager not function
    Egret5.2.2 微信小游戏行的示例排行榜
    Python翻译
    Python-docx库的使用
    用百度文字识别实现图片文本识别
    基于airtest的朋友圈自动点赞
    使用豆瓣源安装python包
    Appium 环境配置遇到的坑
    使用Pyppeteer进行gmail模拟登录
    异步爬虫
  • 原文地址:https://www.cnblogs.com/dream0-0/p/12828154.html
Copyright © 2011-2022 走看看