Форум сайта python.su
Lexander, спасибо. По сути задачи: эта проверка идёт в джанговской модели, перед запросом к базе. Делается для того, чтобы не обрабатывались запросы вида /?id=123abc.
Спасибо всем!
Офлайн
fobiasmogСоветую использовать готовый валидатор.
По сути задачи: эта проверка идёт в джанговской модели, перед запросом к базе.
Офлайн
fobiasmogЕсли передавать id, как это принято в Джанге,
Lexander, спасибо. По сути задачи: эта проверка идёт в джанговской модели, перед запросом к базе. Делается для того, чтобы не обрабатывались запросы вида /?id=123abc.Спасибо всем!
url(r'^reports/(?P<id>\d+)/$', 'credit.views.report'),
Офлайн
Lexander, int(1.23) не выдаст, а вот int('1.23') очень даже выдаст.
А вот Ваш пример с isdigit не покрывает всех случаев использования преобразования к int, ибо работает только подмножестве целых чисел, а именно работает только с положительными числами. Нет конечно можно сделать что-то по типу:
def is_integer(s): s = s.strip() if s[0] in "+-": s = s[1:] return s.isdigit()
Отредактировано cutwater (Ноя. 25, 2013 14:26:48)
Офлайн
cutwaterВы уводите от сути. Это софистика.
Lexander, int(1.23) не выдаст, а вот int('1.23') очень даже выдаст.
cutwaterУ меня не было такого примера.
А вот Ваш пример с isdigit
Офлайн
Эта конструкция очень затратна. Поэтому лучше использовать явные проверки, даже если их несколько.
Офлайн