如何使用 Django 从另一个视图导入函数?
How import a function from another view with Django?
我有这个文件夹层次结构:
|---- saga
|---- core
|---- views.py
|---- study_time
|---- views.py
在我的 study_time/views.py
上,我有这个功能:
def study_time(request):
def tasks_subjects(week_day, key):
#Code here
return __tasks
def day_studies(week_day):
__tasks_subjects = tasks_subjects(week_day, 0)
#Code here
return __studies
return render(request, 'study_time.html', context)
在我的 core/views.py
上,我需要 day_studies() 函数,所以我这样导入:
from saga.study_time.views import day_studies
def home(request):
day_progress = day_studies(datetime.date.today().isoweekday())
但我收到错误消息:
ImportError: cannot import name 'day_studies'
我该如何导入?我不想回复所有代码。
您已经定义了一个嵌套函数。这在包含函数之外是不可见的;事实上,让它从外部不可见几乎是在 Python 中定义嵌套函数的唯一好理由。不要那样做;将它移到 study_time
函数之外。
(另外,不要像那样使用双下划线前缀。它们在 class 之外没有任何意义;即使在那里你也应该很少使用它们。)
内部函数不可访问,因为它只是该函数的本地代码。它对 views.py 中的所有人都不是通用的。所以在这点上做出区分。
通过这个可以更好地理解!!
https://realpython.com/blog/python/inner-functions-what-are-they-good-for/
编码愉快!!
我有这个文件夹层次结构:
|---- saga
|---- core
|---- views.py
|---- study_time
|---- views.py
在我的 study_time/views.py
上,我有这个功能:
def study_time(request):
def tasks_subjects(week_day, key):
#Code here
return __tasks
def day_studies(week_day):
__tasks_subjects = tasks_subjects(week_day, 0)
#Code here
return __studies
return render(request, 'study_time.html', context)
在我的 core/views.py
上,我需要 day_studies() 函数,所以我这样导入:
from saga.study_time.views import day_studies
def home(request):
day_progress = day_studies(datetime.date.today().isoweekday())
但我收到错误消息:
ImportError: cannot import name 'day_studies'
我该如何导入?我不想回复所有代码。
您已经定义了一个嵌套函数。这在包含函数之外是不可见的;事实上,让它从外部不可见几乎是在 Python 中定义嵌套函数的唯一好理由。不要那样做;将它移到 study_time
函数之外。
(另外,不要像那样使用双下划线前缀。它们在 class 之外没有任何意义;即使在那里你也应该很少使用它们。)
内部函数不可访问,因为它只是该函数的本地代码。它对 views.py 中的所有人都不是通用的。所以在这点上做出区分。
通过这个可以更好地理解!! https://realpython.com/blog/python/inner-functions-what-are-they-good-for/
编码愉快!!