繁体   English   中英

了解模块/包装的问题

[英]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你只能得到一个特定的模块,它是ceilceil(2.7) 有关更多详细信息,请在此处阅读

  1. Does the first import ("import os") mean that I'm only using a Module called "os"?

就像该语句所暗示的那样,您正在导入 OS模块,因此可以在python脚本中使用os模块中的功能。

因此,现在您可以在脚本中创建os.function()语句。 默认情况下,操作系统模块是使用Python安装的。 这是有关os模块的信息

  1. 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是简化调用函数。 另一个可能是节省系统资源,因为您只是

  1. 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)"?

确实,请阅读文档以获取模块开发人员的解释。

  1. Filename

这是Python中文件名用法的说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM