进口报表不一致

问题描述 投票:1回答:3

为什么下面的第2种说法在功能上等同于第1种说法也不行?

from django.shortcuts import render # works
import django.shortcuts.render as render # doesn't work

python django
3个回答
2
投票

这个错误正在告诉你原因。render 不是一个模块。

一个可能会让你更清楚的例子--让我们试着从下面的模块中导入一个函数 math 模块。

>>> import math.pow
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pow
>>> from math import pow
>>>

该模块: pow 函数不是一个模块,但可以导入符号(即函数)。 该模块(math).

render()django.shortcuts是一个函数。. 这不是一个模块。


2
投票

因为... render 是一个函数,而你只能 import 模块。

您可以 from a_module import an_object但你只能 import a_module as whatever.


2
投票

这是因为你必须要运行 import djangofrom django.(whatever you want) import (your func or var). Python不喜欢当你调用 import (your module).(whatever path) 因为这样你就会导入一个路径。还有 django.shortcuts.render 不是现有的模块,您必须导入 render 这是一个函数。


2
投票

原因是 render() 是一个函数,从 django.shortcuts 模块。

在python中只能导入模块,不能直接导入函数。

所以你可以这样做。

from module import specific_function

或者干脆

import module

或只对模块进行别名

import module as xyz

或从模块中别名一个特定的函数

from module import specific_function as abc
© www.soinside.com 2019 - 2024. All rights reserved.