理解模块/包的问题

2024-04-25 16:34:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我对Python和Flask还比较陌生,目前正在Flask/Python中使用一些CRUD语句

我想知道我是否完全理解正在发生的事情,但是对于以下主题我有点不安全:模块、包和导入

我想用Flask连接到SQLite数据库。为此,我必须进行一些导入:

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

导入完成后的第一件事是设置basedirectory(=basedir):

basedir = os.path.abspath(os.path.dirname(__file__))

关于这些步骤,我有一些问题:

问题:

import os
from flask import Flask

第一次导入(“导入操作系统”)是否意味着我只使用了一个名为“操作系统”的模块?它是一个独立的.py“文件”,包括一个类、一些属性和方法,对吗

第二次导入(“from flask import flask”)是否意味着我正在使用包“flask”并导入模块“flask”?例如,如果有另一个导入,比如“render\u template”,这是指我使用的是这个模块还是来自模块“Flask”的方法

第二个问题:

basedir = os.path.abspath(os.path.dirname(__file__))

我想了解这个代码。首先,我声明一个名为basedir的变量。然后我将把该变量的值设置为当前.py脚本的绝对路径。现在进入单个步骤:

操作系统=>;意味着我使用的是已经导入的模块“os”,对吧? 路径=>;意味着我在使用那个模块的属性? abspath=>;意味着我正在“os”模块中使用一个名为“abspath(value)”的方法? 如果我得到其他事情的答案,接下来的事情就会清楚了:“

(os.path.dirname(__filename__))

__filename__=>;这是一个内置的Python属性,对吗


Tags: 模块path方法fromimportgtflask属性
2条回答

我要回答第一个问题。基本上,当您只进行一次导入时,python会导入整个文件及其所有模块和函数。就像import math可以使用math.ceil和其他函数一样。然而,当你说from math import add时,你只得到一个特定的模块,它是ceil,就像ceil(2.7)。 更多详情请阅读here

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

正如语句所暗示的,您正在导入OS模块,因此可以在python脚本中使用os模块中的函数

因此,现在可以在脚本中生成os.function()语句。默认情况下,操作系统模块与Python一起安装Here is info on the os module

  1. Does the second import ("from flask import Flask") mean that I'm using the package "flask" and import the module "Flask"? If, e.g., 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"?

这可能会造成混淆,因为函数名和import语句具有相同的名称。您只是从模块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中filename用法的解释

相关问题 更多 >

    热门问题