如何将所有这些导入移动到独立文件

时间:2010-07-21 14:52:00

标签: python django

想象一下情况:

我有一个包含大量不同视图的视图目录。所有视图都有大约6行带导入 - 在文件的开头。每当我创建新视图时,它都是非常硬拷贝粘贴那6行。

我通常使用所有这些导入。

from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required, user_passes_test
from django.core.files.base import ContentFile
from django.core.urlresolvers import reverse
from django.core import paginator
from django.db import connection
from django.db.models import Q
from django.http import HttpResponseRedirect, Http404, HttpResponse, HttpResponseForbidden
from django.shortcuts import render_to_response, get_object_or_404
from django.template import loader, Context, RequestContext
from django.utils.translation import ugettext as _

这样的事情..

问题是:

如何将所有这些导入移动到独立文件,以便我可以在我创建的每个视图中包含该文件。而不是音调导入我将有一个文件与所有视图的导入。我不认为这会破坏应用程序或smtng的性能。我会使用该文件只是为了最常见的导入或像这样的smtng ..也许它仍然与我的该死的PHP逻辑,我知道包括在python是不好的做法..但我需要一个解决方法,这种情况..它正在我的神经

2 个答案:

答案 0 :(得分:2)

您可以将它们放在一个模块中,比如imports.py,然后在您的视图中执行此操作:

from imports import *

但是我认为大多数Python程序员会争辩(我同意)最好将导入列在实际使用它们的模块文件的顶部,就像你一样已经做了。它可能看起来有点冗长,但是当它们方便地列在文件顶部时,跟踪外部模块会容易得多。它还使您更明确您要导入的

答案 1 :(得分:1)

如果你一遍又一遍地做同样的事情,那么你应该在一个单独的模块中完成它们,然后只导入那个模块。