@ru_python

Страница 6506 из 9768
[Anonymous]
14.09.2018
05:09:06
у try:есть finally: и else: но я не уверен что они здесь уместны

Tishka17
14.09.2018
05:09:21
еще один?)
Ну Лок сам никуда не денется

[Anonymous]
14.09.2018
05:09:40
Ну Лок сам никуда не денется
денется) его просто подождать надо

его другой скрипт использует просто

Google
[Anonymous]
14.09.2018
05:11:20
у sqlite есть возможность работать параллельно с двумя подключениями, но я не понял как подключиться туда сразу двумя скриптами)

скрипт 1 парсит значения и складывает в бд, а потом скрипт 2 обрабатывает эти значения

[Anonymous]
14.09.2018
05:23:26
Вроде как параметр timeout у коннекта
When a database is accessed by multiple connections, and one of the processes modifies the database, the SQLite database is locked until that transaction is committed. The timeout parameter specifies how long the connection should wait for the lock to go away until raising an exception. The default for the timeout parameter is 5.0 (five seconds). попробую так c = sqlite3.connect(database = database_file, timeout= 5)

костыльно ориентированное программирование)

Alex
14.09.2018
06:42:34
Что значит код без legacy?

vitaly
14.09.2018
06:46:34
Кто знает как сохранять символ. сылку на файл в постгрес на flask, спасибо

Alex
14.09.2018
06:49:14
Кто знает как сохранять символ. сылку на файл в постгрес на flask, спасибо
Не совсем понятна задача, т.к. символическая ссылка - это специальный объект файловой системы, являющийся по сути ссылкой на сам файл. Сохранить такой объект в БД можно только строкой абсолютного пути до файла.

vitaly
14.09.2018
06:51:58
да, именно это и нужно. есть картинки и названия стянутые с сайта, нужна положить акуратно это все в базу, и когда юзер кликает то выдавать все подписаные карттнку

[Anonymous]
14.09.2018
06:52:25
Вроде как параметр timeout у коннекта
а как сделать адекватнее?)

Alex
14.09.2018
06:53:36
да, именно это и нужно. есть картинки и названия стянутые с сайта, нужна положить акуратно это все в базу, и когда юзер кликает то выдавать все подписаные карттнку
А зачем? Я так подозреваю ты складываешь всё в папку одну. Когда количество файлов стянутых разрастётся, то это больно тебя ударит. Высказывание на опыте.

Google
Tishka17
14.09.2018
06:53:47
а как сделать адекватнее?)
Ну не знаю. Взять постгрес

Alex
14.09.2018
06:54:20
Но есть другие алгоритмы реализации хранения в ФС. Вопрос тогда к названиям файлов. Откуда они берутся и какую роль играют?

vitaly
14.09.2018
06:55:21
так, я вас понял. Сначала хотел картинки как бинарники в базе хранить, на форуме прочитал что нужно символ силки на файли, а файлы в файловой системе хранить

Alex
14.09.2018
06:57:40
Хранить файлы надо в фс. Имена файлов надо делать на основе хеш суммы файла (это исключит дублирование файлов с одинаковым содержимым и разными именами). Ну и хранить в виде дерева на основе имени хеш суммы например по два символа хекс с тремя уровнями вложенности.

Ну и в БД можно хранить уже таблицу с хеш-суммой файла в качестве индекса.

vitaly
14.09.2018
06:59:55
да, я вас понял. спасибо. случайно не знаете ресурс или книгу где это описано в деталях?

Alex
14.09.2018
07:01:09
Есть ещё одна проблема из-за ограничений ФС. При большом количестве мелких файлов и ФС, основанной на жестком выделении inode, может наступить ситуация нехватки inode, но при этом окажется много свободного места на сервере. В частности этим страдает EXT4

да, я вас понял. спасибо. случайно не знаете ресурс или книгу где это описано в деталях?
У меня это хранится в голове, моих проектах и возможно в моей веб-документации

Василий
14.09.2018
07:07:20
Но это же не хеш функция
Я вкурсе. Это я не правильно выразился. не проснулся еще.

Alex
14.09.2018
07:07:36
Но с md5 вроде коллизий не будет в обозримом будущем.

Василий
14.09.2018
07:08:21
В общем uuid специально создан для создания уникальных идентификаторов. потому он так и называется )

Alex
14.09.2018
07:08:34
Кстати одно из преимуществ хеш-функции - защита от подделки файла, при условии доверия к данным в БД

Василий
14.09.2018
07:09:22
Но с md5 вроде коллизий не будет в обозримом будущем.
https://ru.wikipedia.org/wiki/MD5#%D0%9A%D0%BE%D0%BB%D0%BB%D0%B8%D0%B7%D0%B8%D0%B8_MD5

Eldar
14.09.2018
07:10:54
Ещё есть sha3

В общем uuid специально создан для создания уникальных идентификаторов. потому он так и называется )
Все таки твой вариант подходит больше, когда мы не привязывается к содержимому

Ну или нужна скорость

Google
Василий
14.09.2018
07:15:07
так, я вас понял. Сначала хотел картинки как бинарники в базе хранить, на форуме прочитал что нужно символ силки на файли, а файлы в файловой системе хранить
Проблема хранения картинок в базе в том что они записываются битовой строкой для хранения. База тоже не волшебная и при например сортировке для выдачи результата должна перемещать эту гиганскую битовую строку туда сюда. В результате чего производительность на больших таблицах падает буквально до нуля. В этом можно убедится даже без картинок. просто сделать колонку со строкой в 1к или 2к символов. и посмотреть через EXPLAIN

vitaly
14.09.2018
07:16:26
да спасибо. но мне нуже пример кода чтобы разобрать как их сохранить не каряво

недостаток опыта у меня.

Василий
14.09.2018
07:16:48
vitaly
14.09.2018
07:16:54
фласк

а скачал картинки супом

Eldar
14.09.2018
07:17:14
Смотри как в джанге реализовано

Василий
14.09.2018
07:17:28
фласк
При недостатке опыта лучше делай на джанго. там многое за тебя сделано уже

vitaly
14.09.2018
07:17:50
понял, это ценный совет!

vitaly
14.09.2018
07:18:02
спасибо

Eldar
14.09.2018
07:19:04
Даже если если в оперу они не попадут, то их все равно надо будет прочитать чтобы отбросить

Василий
14.09.2018
07:19:07
Зачем она при сортировке перемещает огромную строку? Указатели двигает, и все норм. Вот операции сравнения - это да
Не правильно выразился. чтобы выдать пользователю. она читает с диска не последовательно а кусками и собриает конечный массив.

фласк
Но если брать например джанговский подход то они хранят картинки в поддиректории с именем модели. чтобы в одной директории кучу картинок не хранить. названия рекомендуется задавать через uuid. а в базе хранится просто строка-путь к файлу в системе.

Василий
14.09.2018
07:21:47
Вроде как относительный путь указывается
Да. Исходя из MEDIA_ROOT и BASE_DIR в settings.py

Евгений
14.09.2018
07:21:54
Вот интересно, как оптимизация сортировки больших строк работает. Ведь оптимально не читать сразу все данные, а начать сортировку по первым блокам, и только в случае их равенства лезть за следующими

Eldar
14.09.2018
07:22:39
Уу, да тебе неплохо было бы прочитать учебник по бд

Google
Oleg
14.09.2018
07:22:48
Всем привет! Подскажите, как правильно сделать - есть приложение на aiohttp нужно собрать глобальный конфиг и сделать так, чтобы к нему можно было обратиться из любого места за какими то настройками, которые в нем лежат. можно было бы добавить в app['config'], но app не доступен кроме как из вьюшек. как быть?

Admin
ERROR: S client not available

Василий
14.09.2018
07:23:02
Уу, да тебе неплохо было бы прочитать учебник по бд
На хабре была крутая статья про индексы в постгресе. могу кинуть ссылку.

Евгений
14.09.2018
07:23:17
Этим у тебя уже индексы занимаются
Ну устройство индекса для двоичных данных, думаю, достаточно интересное.

vitaly
14.09.2018
07:23:27
кинь если не сложно

Oleg
14.09.2018
07:24:58
Один глобальный файл setrings.py с переменными и везде его импортируй
переменные должны подгрузиться в зависимости от переданного конфига т.е. сделать их вначале все None ?

Eldar
14.09.2018
07:25:28
переменные должны подгрузиться в зависимости от переданного конфига т.е. сделать их вначале все None ?
В этом же файле можешь читать файл с конфигом и присваивать значения

Eldar
14.09.2018
07:25:58
Более того можно даже коннекты к база инициализировать, главное чтобы там loop не создавался

Oleg
14.09.2018
07:26:50
Более того можно даже коннекты к база инициализировать, главное чтобы там loop не создавался
да - там и коннекты к бд, к редису и прочие кастомные настройки

то есть прописать все настройки в settings.py например DB_HOST = None а потом считав конфиг уже в рантайме присвоить значение? DB_HOST = config['db']['host]

Oleg
14.09.2018
07:29:03
Сразу значение из файла пихай
а если где то там внутри аппа есть классы, у которых статичные поля зависят от значений в settings.py ?

Eldar
14.09.2018
07:30:05
Для каждой аппы можно сделать свой локальный settings.py ну или вычислимые настройки создавать как поля класса

Oleg
14.09.2018
07:30:58
вариант с локальным settings.py больше нравится спс!

Василий
14.09.2018
07:31:48
кинь если не сложно
https://habr.com/company/postgrespro/blog/330544/

Там большой цикл статей. штук 10. Про всевозможные типы индексов. Крайне познавательно

vitaly
14.09.2018
07:32:37
Alex
14.09.2018
07:34:09
А есть у кого ссылка на реализацию алгоритма хранения данных и дерева B или B+ на питоне?

Google
Василий
14.09.2018
07:35:32
Dim
14.09.2018
07:36:39
http://aliev.me/runestone/index.html тут есть с примерами

Alex
14.09.2018
07:36:51
гуглится же за 5 минут. или тебе библиотека нужна?
Библиотека. Так вроде понятно на схемах. Но как они отделяют мух от котлет, точнее блоки, листья в блоках от самих данных, на которые ссылается номер в листе.

Василий
14.09.2018
07:37:09
http://knuth.luther.edu/~leekent/CS2Plus/chap10/chap10.html

вот неплохое описание реализации нашел

https://pypi.org/project/BTrees/

вот либа

Alex
14.09.2018
07:39:58
вот либа
Спасибо! Сохранил, ознакомлюсь.

Василий
14.09.2018
07:41:06
https://pypi.org/project/blist/

эти даже обещают производительность O(logN)

Страница 6506 из 9768