
Max
27.07.2018
16:29:01
Есть код
insertRow = "INSERT INTO " + tableName + " (" + str(colHeadName) + ") VALUES (" + vCell + ");"
cursor.execute(insertRow)
В консоль печатает синтаксически верный инсерт для mySQL, но cursor.execute(insertRow) не исполняет его.

Mike
27.07.2018
16:30:04

neo
27.07.2018
16:30:37
пишу сайт на джанго и задумался о мобильном приложении. в мобильной разработке нифига не шарю.
вопрос такой: можно ли будет воспользоваться бекендом, написанном на питоне, чтобы написать приложение на андроид? или как вообще можно это сделать, написать приложение для чего-то типа TripAdvisor?

-_-
27.07.2018
16:31:02

Google

Vasia
27.07.2018
16:31:06
А кто небудь роботал с Spotify-dl?

Denis
27.07.2018
16:32:17

neo
27.07.2018
16:32:53

Димон
27.07.2018
16:33:25

-_-
27.07.2018
16:33:51

Denis
27.07.2018
16:34:02

Димон
27.07.2018
16:34:41

Denis
27.07.2018
16:34:57
В питоне позднее связывание не так заметно, а в других языках полиморфизм и виртуальные методы именно это и делают

neo
27.07.2018
16:35:31

Anatoly
27.07.2018
16:36:12

Denis
27.07.2018
16:36:44
В функциональном программировании тоже объекты бывают

Димон
27.07.2018
16:38:26

Google

Denis
27.07.2018
16:40:44

Max
27.07.2018
16:41:15
Повторюсь Есть код ```
insertRow = "INSERT INTO " + tableName + " (" + str(colHeadName) + ") VALUES (" + vCell + ");"
cursor.execute(insertRow)```
В консоль печатает синтаксически верный инсерт для mySQL, но cursor.execute(insertRow) не исполняет его.

Tishka17
27.07.2018
16:41:21

Denis
27.07.2018
16:41:50
Это все-таки про объекты, а не про функции

Димон
27.07.2018
16:42:36
Да по сути ссылка на функцию в С - это тоже late binding.

Max
27.07.2018
16:42:54

Tishka17
27.07.2018
16:43:07
Какие сложные термины?
Поработал с базой, закоммить

Димон
27.07.2018
16:43:39

Anatoly
27.07.2018
16:43:39

Denis
27.07.2018
16:43:45

Димон
27.07.2018
16:43:49

Denis
27.07.2018
16:44:32
На С вполне можно писать в объектно-ориентированном стиле

Tishka17
27.07.2018
16:45:09
Можно ооп сделать на си

Google

Denis
27.07.2018
16:45:30
Если ты куда-то передаешь данные вместе со ссылкой на функцию, это повод задуматься, не лучше ли будет сделать класс

Димон
27.07.2018
16:45:54
Ну и в С класс не сделаешь

Tishka17
27.07.2018
16:47:23
В си есть структуры и указатели

Denis
27.07.2018
16:47:37

Димон
27.07.2018
16:48:03
Согласен. Но факт, что late binding применяется не только в ООП. И факт, что чаще в ООП

Egor
27.07.2018
17:06:33
Кто знает как остановить потоки? Делал по этому примеру:https://stackoverflow.com/a/2846695/9521448. Как остановить их с выдачей result!?

Denis
27.07.2018
17:08:42

Egor
27.07.2018
17:09:51
Я знаю, но проблема в том, что остановятся они через 10 часов(мноопоточный парсер). Хочется увидеть result\

Сергей
27.07.2018
17:10:44

Denis
27.07.2018
17:11:17

Egor
27.07.2018
17:11:46
Вот именно

Denis
27.07.2018
17:12:36
Можешь, конечно, брать те данные, которые уже посчитались, но они будут неполные

Egor
27.07.2018
17:13:00
Но есть крайний случай. Отрубить wi-fi. Выдает ConnectionError, потоки закріваются, result выдается

Denis
27.07.2018
17:14:03
Сделай очередь или еще что-нибудь и туда клади результаты по мере вычисления

Сергей
27.07.2018
17:15:19

Egor
27.07.2018
17:16:58
Хз

Google

Сергей
27.07.2018
17:17:06
GIL никто не отменял

Egor
27.07.2018
17:17:21
Я с потоками знаком не больше 3 часов

ivan
27.07.2018
17:18:11
Что ты там парсишь такое 10 часов???
Мне кажется, у тебя что-то не так с самим кодом и потоки/процессы тут не причем
Записывай result куда-нибудь после каждой спарсенной страницы

Admin
ERROR: S client not available

Donaudampf
27.07.2018
17:19:56
пару недель назад разбирали потоки, очереди, пулы, распихивание задач и сбор результатов, можно где-то в тех окрестностях почитать:
https://t.me/ru_python_beginners/324692

Egor
27.07.2018
17:20:30
Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера
Немного больше полвины страниц хабра, кроме песочницы

ivan
27.07.2018
17:22:32
Ну, я просто рекомендую после каждой страницы писать резалт
Чтобы не ждать окончания работы, чтобы хоть что-то получить

Egor
27.07.2018
17:22:47
Можно как-то заставить скрипт пахать и игнорить огибки типа "соединение разорвано"?

Donaudampf
27.07.2018
17:23:09
обработка исключений же

ivan
27.07.2018
17:23:11
Try except

Egor
27.07.2018
17:23:17

Сергей
27.07.2018
17:23:49

Серж
27.07.2018
17:23:53
Лучше отдели получение того что парсить от самого процесса парсинга

ivan
27.07.2018
17:24:14
Except: pass
Except: logger.write(exception)
Как хочешь

Google

ivan
27.07.2018
17:25:59

Egor
27.07.2018
17:27:01

Сергей
27.07.2018
17:27:21
минут на 10 по дефолту легко зависнуть

Egor
27.07.2018
17:27:50
Буду читать.

Сергей
27.07.2018
17:27:58
или сколько там было
таймаут между попытками * кол-во попыток

Egor
27.07.2018
17:29:25

Серж
27.07.2018
17:29:39
Сделай на ивентлупе, зачем в пистоне потоки когда гил есть?

Влад
27.07.2018
17:29:49
Ещё как вариант, подрубать прокси после N попыток.

Сергей
27.07.2018
17:30:32

ivan
27.07.2018
17:30:38
А как так сделать?
Если ты делаешь запросы через либу requests, то там есть про таймауты в документации

Серж
27.07.2018
17:30:49
Оверхед на процессы

ivan
27.07.2018
17:30:49

Egor
27.07.2018
17:30:55

Сергей
27.07.2018
17:31:19