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 星
AI Agent 全栈开发工程师
  • 参与学习       500    人
  • 解答问题       404    个

全流程打造你自己的(Coze/Dify)低代码智能体开发平台;2025年入行正当时,企业急需,人才稀缺,竞争小;无论入行还是转行,首选口碑好课,门槛低、成长高

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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