Может кто-нибудь доказать, почему это плохая практика, использовать такое решение:
В просмотрах Django в 98% случаев вам нужно использовать
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext as _
в любом случае, в моем проекте каждое представление имеет импорт, и все используется почти в каждой второй функции представления:
from datetime import datetime
from django.conf import settings
from django.contrib.auth.models import User
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
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.utils.translation import ugettext as _
Теперь добавьте несколько моделей и форм, и у меня есть 50 строк чушь, которые невозможно прочитать вообще.
Первое, что пришло мне в голову, это, конечно, сделать больше представлений, разделить некоторые операции и т. Д. И т. П., Но все еще около 30 строк импорта уничтожают мою ориентацию в коде.
Тогда я просто решил поместить все, что используется в представлениях, в 95% случаев в каталог /project/app/imports/view.py. Теперь у меня есть все обычные вещи только с импортом ONE , но мой коллега напал на меня, что очень трудно читать этот вид кода, потому что вы не можете видеть, что импортируется, и какого черта это так сложно открыть еще одну вкладку в вашей IDE .. ??? [особенно это касается пользователей vim, у них есть FRAMES, и он использует vim]
Я сделал то же самое с моделями, у моих моделей есть свой собственный каталог, потому что их там более 50, и эти файлы не маленькие - около 150 строк в каждом .. Даже в этих файлах мало моделей ... так что я я просто делаю что-то вроде:
from myapp.models.mymodel import *
и есть несколько мест, где я просто делаю: from myapp.models import *
[ init .py из myapp / import dir находится здесь]
Проблемы:
1) хорошо, так что первая проблема - это пространство имен, такой импорт моделей может быть действительно смешным ... но решение с представлениями и формами - это всего лишь легкость открыть еще одну вкладку в вашей IDE
2) проблема с производительностью? мой коллега действительно много спорит с этим аргументом, что «каждый импорт занимает 256 КБ оперативной памяти» ?? (запустив скомпилированный файл .pyc? нет, я в это не верю;)
На самом деле речь идет о проблеме производительности из-за импорта.
p.s. Я действительно новичок в Python (всего 3 месяца), и я открыт для объективных аргументов для всех за и против этого решения.
UPDATE
Однажды я задал вопрос о том, как перенести импорт в автономный файл, чтобы никто не жаловался на это =) вопрос здесь