Сергей Горностаев
@sergey-gornostaev Автор вопроса, куратор тега Django
Roman Kitaev: для того, чтобы ускорить загрузку данных.
def auto_transaction(): #37 секунд
for i in range(10000):
name="String number %s" % i
Record.objects.create(name=name)
@transaction.commit_manually
def manual_transaction(): #2.65 секунды
for i in range(10000):
name="String number %s" % i
Record.objects.create(name=name)
transaction.commit()
Сергей Горностаев
@sergey-gornostaev Автор вопроса, куратор тега Django
Roman Kitaev: внутри блока with atomic() цикл по всему объёму данных? Так там 200 000 элементов, то есть 200 000 итераций. И коммит будет только после завершения всех 200 000. А мне надо коммитить каждую 1000 отдельно.
Сергей Горностаев
@sergey-gornostaev Автор вопроса, куратор тега Django
Roman Kitaev: как? Обернуть им тело цикла? Тогда разом будут коммититься 200 000 записей. Обернуть кусок кода в теле цикла? Тогда будет коммититься каждая запись. А мне надо чтобы 1000 записей разом, потом ещё 1000, потом ещё и так 200 раз.
pvgdrk: устанавливать контекст в той вьюхе, в которую делается редирект. Либо, как я уже писал, написать свой context processor и тогда имя домена будет доступно во всех шаблонах.
tityanka: в этом случая я вижу три варианта:
1. Иметь набор вариантов написания задуманного слова и сравнивать введённое в цикле с каждым элементом.
2. Иметь регулярное выражение, максимально широкого описывающее все возможные вариации, и match'ить введённое слово с ним.
3. Использовать алгоритм сравнения по звучанию. Вроде этого https://github.com/evalexdy/Keywords-Generator/blo...
Cyber_bober: если во view тоже вручную будете параметры запроса обрабатывать
some_field_val = request.POST.get('some_field_name')
то имена можете ставить произвольные, какие вам удобно. А если валидация и нормализация параметров будут делаться формой
form = SomeForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
то имена инпутов в html-форме должны следовать нотации id_ИмяПоляФормы.
А без https владелец прокси, точки доступа или любого шлюза на маршруте способен контролировать перемещения по сайту, получать данные из закрытых разделов и перехватывать пароли и кукисы.
Сергей Ермаков: кстати, можно попробовать ещё переопределить StaticFileHandler и делать редирект из него. Но это уже за пределами моего опыта, да и выигрыша не вижу.
Сергей Ермаков: есть static_url_prefix. Но, во-первых, он предназначен для относительных адресов, возможны проблемы, если запихать в него абсолютный адрес. И, во-вторых, он работает только для механизма обслуживания статики самим tornado. А это ещё более плохая идея, чем костыль с редиректом.
def auto_transaction(): #37 секунд
for i in range(10000):
name="String number %s" % i
Record.objects.create(name=name)
@transaction.commit_manually
def manual_transaction(): #2.65 секунды
for i in range(10000):
name="String number %s" % i
Record.objects.create(name=name)
transaction.commit()