Flask-SQLAlchemy扩展的配置与使用课程代码报错

Flask-SQLAlchemy扩展的配置与使用课程代码报错

class ExtensionModule(Module):
    def configure(self, binder: Binder) -> None:
        binder.bind(SQLAlchemy, to=db)

这个类,放在app/http/app.py中运行代码没问题, 但是转移到了app/http/module.py中就报错

https://img1.sycdn.imooc.com/climg/669c5df5098d2eae16350815.jpg

但是用python命令行调用就是好的

https://img1.sycdn.imooc.com/climg/669c5e330986dcac15480324.jpg


我怀疑有没有可能是PyCharm的bug导致,所以我改成包的绝对导入,依旧有报错

https://img1.sycdn.imooc.com/climg/669c5ec80951d01c15510711.jpg


感觉上是这里面有包、文件、对象都叫app,导致导入的时候出错,因此把app.py改成了application.py, 对象app改成了 app_server,问题才解决。

但是相对导入的方法还是不行,不知道为啥

https://img1.sycdn.imooc.com/climg/669c5f640905356616360848.jpg


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
泽辉呀 2024-07-21 23:06:35

看了下同学的代码+执行的命令,截图里是直接运行app\http\app.py来运行项目的,这种方式是针对单个文件执行,对于一些模块的识别就会发生错误(对于多个python文件的项目来说,尽可能不要右击运行文件的方式来执行)。可以修改下执行的命令,改成如下即可:


https://img1.sycdn.imooc.com/climg/669d23bc094e5bf115871239.jpg


如果是通过命令行来执行的话,通过以下命令来执行:

FLASK_APP = app/http/app.py
FLASK_ENV = development
FLASK_DEBUG = 1

python -m flask run


  • 提问者 finrod #1

    感谢老师的回复,我用的是社区版的PyCharm,我已经在配置中进行了设置
    https://img1.sycdn.imooc.com/climg/669e737b09f865ea15940845.jpg


    另外我发现代码

    __name__ == :
        app_server.run(=)

    把flask的debug设置为True后,使用debug进行运行就会报错

    https://img1.sycdn.imooc.com/climg/669e73dd0931cd7116020602.jpg


    当我设置为False时,就不会
    https://img1.sycdn.imooc.com/climg/669e740d090ea0d817920599.jpg

     

    我觉得这个有可能是PyCharm社区版自己的Bug

    2024-07-22 23:01:41
  • 泽辉呀 回复 提问者 finrod #2

    这个不是bug哦,这是因为这个命令在社区版下其实是执行单个文件的,所以模块是被错误了,可以把社区版的命令改成这个:


    python -m app.http.app flask run --env=development --debug


    https://img1.sycdn.imooc.com/climg/66ab0bec094ada3c17731103.jpg


    这样就是启动flask项目了,并不是执行单个文件

    2024-08-01 12:16:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
LLM应用开发平台特训营
  • 参与学习       225    人
  • 解答问题       175    个

全栈+全流程打造价值极高+可商用大模型应用开发LLMOps平台 迅速具备低成本、高效率构建生成式 AI 原生应用的稀缺能力 教/学/练/测/评教学+大厂内推机会,培养具备AI架构和研发能力的尖端人

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师