@python_beginnersЭта группа больше не существует

Страница 553 из 1885
Igor
12.10.2016
08:34:52
должна быть актуальнее

Johnnie
12.10.2016
08:35:04
<select class="form-control" id="role" name="role"><option value="1">Заказчик</option><option value="2">Исполнитель</option></select>

на выхлопе

Google
Igor
12.10.2016
08:35:24
збс

Johnnie
12.10.2016
08:35:38
так короче, оставлю)

Zart
12.10.2016
08:36:25
уникальность по фио?а как быть тезкам-однофамильцам?

Roman
12.10.2016
08:37:15
над гуид делать

x3233
12.10.2016
08:37:15
Паспорт

Pavel
12.10.2016
08:37:27
полный тёзка это называется.

x3233
12.10.2016
08:37:52
полный тёзка это называется.
Я вчера по клиенту смотрел

Иванова Светлана Александровна

Так вот, у нас в базе 50 таких уникальных записей

Johnnie
12.10.2016
08:38:35
тогда md5(last_name + first_name + middle_name + email)

x3233
12.10.2016
08:38:42
Полные тески

Stanislav
12.10.2016
08:38:58
У меня уебищный ФИО, а точнее 'Ф' Бобокало, ну вообще не звучит

Roman
12.10.2016
08:39:33
Но не Попандороволокамонддураниколяколопоколовский

Google
Zart
12.10.2016
08:39:34
мне Ростелеком в отчество тоже Ивановича влеплял изза пропущенного поля

Roman
12.10.2016
08:39:43
Вот что с такими фамилиями делать, м?

Igor
12.10.2016
08:39:46
тогда md5(last_name + first_name + middle_name + email)
так можно и просто по емейлу (если один человек не может быть одновременно разным типом)

Pavel
12.10.2016
08:39:51
У меня уебищный ФИО, а точнее 'Ф' Бобокало, ну вообще не звучит
с 14 лет (в рф) любой человек может поменять любую часть фио.

Stanislav
12.10.2016
08:40:19
с 14 лет (в рф) любой человек может поменять любую часть фио.
Тоже зашквар, особенно когда я у бати один

Roman
12.10.2016
08:40:25
Stanislav
12.10.2016
08:40:34
Род продолжать, кококо

Pavel
12.10.2016
08:41:26
Род продолжать, кококо
вот он расстроится, если все внучки будут.

Zart
12.10.2016
08:42:33
Stanislav
12.10.2016
08:44:02
вот он расстроится, если все внучки будут.
Как вариант можно сделать двойную фамилию. Вторую выбрать тоже ебанутую, например "Бандеренко"

Zart
12.10.2016
08:45:04
Бойль-Мариотт

Johnnie
12.10.2016
08:45:55
у тебя субд или что?
нууу, в некотором виде да. журнал инцидентов с указанием заказчика, исполнителя, текста, дат и прочего

Zart
12.10.2016
08:46:18
я к тому что в базах данных есть CREATE UNIQUE INDEX

Johnnie
12.10.2016
08:46:35
перед добавлением нового все равно нужно проверять

Zart
12.10.2016
08:46:45
ммм.. нет?

Johnnie
12.10.2016
08:46:45
и либо по 4ем полям, либо по одному

тогда ошибку вывалит sqlite же :)

Liyoto
12.10.2016
08:48:15
Добрый день, помогите что не так в коде

name = input('Как вас зовут?:') name1 = "Roman" , "roma" , "Roma" , "roman" if name == name1: print('Я сочиняю роман , Рома-Рома , роман') input('\n\n\n Exit')

Zart
12.10.2016
08:48:19
это его работа же

Google
Zart
12.10.2016
08:49:28
а name1 лучше переименовать в names

Igor
12.10.2016
08:49:35
угу

Johnnie
12.10.2016
08:49:41
это его работа же
для инцидентов я делал вот так: if Incident.query.filter_by(ext_id=form.ext_id.data).first(): flash('Incident {0} already exists!'.format(form.ext_id.data), 'error') else:

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

Igor
12.10.2016
08:50:20
а SQLite разве не умеет unique?

Zart
12.10.2016
08:50:24
умеет

джонни не умеет

Johnnie
12.10.2016
08:50:34
эксепшн ловить что ли?

Zart
12.10.2016
08:50:37
угу

Pavel
12.10.2016
08:50:44
для инцидентов я делал вот так: if Incident.query.filter_by(ext_id=form.ext_id.data).first(): flash('Incident {0} already exists!'.format(form.ext_id.data), 'error') else:
если есть уникальный индекс по нескольким полям, то при добавлении записи вывалится эксепшен, который надо поймать и среагировать

Liyoto
12.10.2016
08:50:50
Johnnie
12.10.2016
08:50:55
сразу бы так :D

Zart
12.10.2016
08:51:39
если ты не повесишь уникальный индекс, и будешь сверяться через запрос - то у тебя между запросом и инсертом будет окно, в которое второй процесс может внести дубликат

Johnnie
12.10.2016
08:52:23
?

а как понять какие еще эксепшены может вызвать добавление записи?

Google
Johnnie
12.10.2016
08:54:36
try: incident = Incident(form.ext_id.data, form.text.data) db.session.add(incident) db.session.commit() flash('Incident {0} added successfully!'.format(incident.ext_id), 'success') return redirect(url_for('incident.view_all')) except IntegrityError: flash('Incident {0} already exists!'.format(form.ext_id.data), 'error')

мне кажется сюда еще обработку надо добавить тогда

типа не получилось приходите позже

в гугле только общий какой-то SQLAlchemyError

Igor
12.10.2016
09:07:07
столкнешься - добавишь незнакомые исключения можно логировать

Pavel
12.10.2016
09:09:53
нахуй документацию, давайте эксперименты ставить. http://docs.sqlalchemy.org/en/latest/core/exceptions.html

Johnnie
12.10.2016
09:11:30
и какие брать?

Admin
ERROR: S client not available

Igor
12.10.2016
09:16:25
ну ваще по документации правда бывает непонятно, какие исключения могут быть

и чтения одних исходников алхимии тоже может быть недостаточно, надо вплоть до stdlib проходиться, чтобы все найти

Johnnie
12.10.2016
09:18:27
ну так items это и есть набор туплов. ну хотя да, в третьем питоне будет генератор возможно можно list(ROLES.items()) обойтись
выводит то все красиво, но при попытке засубмиттить выводит Invalid choice. Вернул как было(

Igor
12.10.2016
09:18:40
пардон

Johnnie
12.10.2016
09:18:51
except: сообщение выводим

так плохо делать же?

все подряд ловить

Igor
12.10.2016
09:19:40
ваще да, так себе хотя бы логируй можно через logging.exception (или logging.debug(..., exc_info=True)) можно через except Exception as e: и из e инфу об исключении вытаскивать

Roman
12.10.2016
09:20:37
Повторный тест: Теперь вы должны увидеть это: ====================================================================== FAIL: test_empty_db (__main__.FlaskrTestCase) Ensure database is blank ---------------------------------------------------------------------- Traceback (most recent call last): File "app-test.py", line 49, in test_empty_db assert b'No entries here so far' in rv.data AssertionError ---------------------------------------------------------------------- Ran 5 tests in 0.072s FAILED (failures=1) Эта ошибка утверждает, что при обращении к маршруту / сообщение "No entries here so far" возвращается. Проверьте шаблон index.html. Текст на самом деле гласит: "No entries yet. Add some!". Так обновите же тест и запустите тест вновь:

чтооооооооо?

Zart
12.10.2016
09:21:02
тесты ассертами..

Google
Roman
12.10.2016
09:21:06
как я ору с мануалов

Pavel
12.10.2016
09:22:57
но всё ведь зависит от конкретных требований и конкретного кода. Если требования к функции: " или дай ответ, или не скажи ничего, пусть хоть небо на землю падает", то да, except Exception as e: logging.exception() return None. Если нужно особо поймать случай неправильного формата при вводе в базу данных, то там ловить только ValueError какой-нибудь.

Что за любовь к универсальным рецептам...

тесты ассертами..
это норма для pytest

Igor
12.10.2016
09:25:19
а где - не норма?

и что плохого в тестах ассертами?

Zart
12.10.2016
09:25:40
хуево же

Roman
12.10.2016
09:25:57
бля

Zart
12.10.2016
09:26:00
раз в пятилетку возникает необходимость в python -O

Pavel
12.10.2016
09:26:03
а где - не норма?
в import unittest целая куча AssertIsNone, AssertAlmostEqual и т.п.

Roman
12.10.2016
09:26:05
я нихуя не пойму, что обновлять в тесте

пиздец...

Zart
12.10.2016
09:26:07
который выпиливает ассерты насмерть

Igor
12.10.2016
09:26:53
в import unittest целая куча AssertIsNone, AssertAlmostEqual и т.п.
они функционально как-то отличаются в лучшую сторону от assert x is None? хотя AlmostEqual это интересно

Zart
12.10.2016
09:27:15
almostEqual разумеется для сравнения пары флоатов

Igor
12.10.2016
09:27:28
ааа :)

Pavel
12.10.2016
09:28:26
они функционально как-то отличаются в лучшую сторону от assert x is None? хотя AlmostEqual это интересно
нет, никак, просто мешок сахара для разных случаев (true\false, none\not none, is in list, almost equal для флоатов, и что-то там ещё)

Roman
12.10.2016
09:29:00
вот из-за такого говна, когда непонятно что делать, мне дропнуть хочется всё это говно

Igor
12.10.2016
09:29:15
так а где там сахар-то между симпатичным assert hui is None и assertIsNone(hui) я выбрал бы первое. или это вкусовщина?

Страница 553 из 1885

Эта группа больше не существует Эта группа больше не существует