【问题标题】:What is going on in this intro Flask code?这个介绍 Flask 代码中发生了什么?
【发布时间】:2015-01-12 04:20:00
【问题描述】:

这是the Flask mega-tutorial.的开箱码

让我们首先为我们的应用程序包创建一个简单的初始化脚本(文件 app/init.py):

from flask import Flask

app = Flask(__name__)
from app import views

上面的脚本只是创建应用程序对象(类 Flask) 然后导入我们没有写的views模块 还没有。

我不确定这里发生了什么。如果app 是一个类的实例,我们如何在它上面使用importfrom app import views 这行对我来说毫无意义。有人可以帮我理解这里发生了什么吗?为什么我们需要实例化一个类才能导入一些东西?

【问题讨论】:

    标签: python flask python-import


    【解决方案1】:

    不幸的名字冲突! from app import 指的是模块或包 app(由mkdir app 在本教程中的此代码之前创建并在其中编辑此__init__.py),与变量无关名称 app 确实引用了一个类实例。

    作为import this 的最后一行,命名空间确实是一件很棒的事情——但是当它们被隐式使用时(如fromimport,它们的命名空间与模块的命名空间完全分开),它可能更好,更少混淆,以避免故意冲突名称......因为,如果不这样做,读者的混淆几乎是不可避免的。教程的作者应该特别注意这一点!

    【讨论】:

    • 哦,现在很清楚了,作者的选择有点愚蠢!不应该所有进口都排在首位吗?为什么他会在实例化应用程序后这样做?不是说你是作者,而是你能想到什么特别的理由吗?
    猜你喜欢
    • 2018-11-12
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 2018-07-28
    相关资源
    最近更新 更多