[英]Question of understanding Modules/Packages
所以我是Python和Flask的新手,目前正在Flask / Python中玩一些CRUD语句
我想知道我是否完全了解正在发生的事情,但是对于以下主题我有点不安全:模块,包导入
我想用Flask连接到我的SQLite数据库。 这样做,我必须进行一些导入:
import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
导入完成后的第一件事是设置基本目录(= basedir):
basedir = os.path.abspath(os.path.dirname(__file__))
关于这些步骤,我有一些问题:
题:
import os
from flask import Flask
第一次导入(“ import os”)是否意味着我仅使用名为“ os”的模块? 这是一个独立的.py-“文件”,其中包含类,一些属性和方法,对吗?
第二次导入(“从烧瓶导入烧瓶”)是否表示我正在使用软件包“烧瓶”并导入模块“烧瓶”? 如果,例如,将有另一个类似于“ render_template”的导入,这是否意味着我正在使用此模块,或者这是模块“ Flask”中的方法?
第二个问题:
basedir = os.path.abspath(os.path.dirname(__file__))
我想了解这段代码。 首先,我要声明一个名为basedir的变量。 然后,我将将该变量的值设置为当前.py-script的绝对路径。 现在到单个步骤:
os =>表示我正在使用已经导入的模块“ os”,对吗? path =>表示我正在使用该模块中的属性? abspath =>表示我正在“ os”模块中使用一种称为“ abspath(value)”的方法? 如果我得到其他答案,那么接下来的事情将会很清楚:
(os.path.dirname(__filename__))
__filename__
=>这是内置的Python属性,对吗?
我要回答第一个问题。 基本上,当您仅执行导入操作时,python会使用其所有模块和功能导入整个文件。 就像import math
时一样,您可以使用math.ceil
和其他函数。 然而,当你说from math import add
你只能得到一个特定的模块,它是ceil
像ceil(2.7)
有关更多详细信息,请在此处阅读
Does the first import ("import os") mean that I'm only using a Module called "os"?
就像该语句所暗示的那样,您正在导入 OS模块,因此可以在python脚本中使用os
模块中的功能。
因此,现在您可以在脚本中创建os.function()
语句。 默认情况下,操作系统模块是使用Python安装的。 这是有关os模块的信息 。
Does the second import ("from flask import Flask") mean that I'm using the package "flask" and import the module "Flask"? If, eg, there would be another import like "render_template", does that mean I'm using this module or is it a method from the module "Flask"?
由于函数名称和导入语句具有相同的名称,这可能会造成混淆。 您仅从Flask模块中导入功能瓶,而不是从Flask模块中导入所有功能。 这样做有多种原因。 On是简化调用函数。 另一个可能是节省系统资源,因为您只是
os => means that I'm using the already imported module "os", right? path => means that I'm using an attribute from that module? abspath => means that I'm using a method within the "os" module called "abspath(value)"?
确实,请阅读文档以获取模块开发人员的解释。
Filename
这是Python中文件名用法的说明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.