crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Питон - просто капец
Litkevich Yuriy
  опции профиля:
сообщение 26.3.2014, 22:48
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


у меня уже сложилось стойкое впечатление, что Питон писал голандец, для которого доступ у наркоте такой-же как у нас к сигаретам.
Делаю сайт на Джанге (1.5 / Питон 2.7)
сделал логер
mylogger.py

# -*- coding: utf-8 -*-

import os

LOG_FILE_NAME = os.path.dirname(__file__) + '/logs/my.log'
LOG_FILE_NAME = LOG_FILE_NAME.replace('\\','/')

print 'LOG_FILE_NAME = ', LOG_FILE_NAME

def write(string):
    try:
        f = open(LOG_FILE_NAME, 'a')
    except:
        f = open(LOG_FILE_NAME, 'w')
    f.write(string)
    f.write('\n')
    f.close()



Решил использовать:
Раскрывающийся текст

# -*- coding: utf-8 -*-

import mylogger as Log
...
def getImageOrDummy(image = None):
    Log.write('getImageOrDummy')
    ...
    Log.write('Привет-1')
    Log.write(u'Привет-2')
    if exists:
        return image
    ...
третья строка в лог не печатается, ошибок нет. Хер бы с ней, но на сайте пропали картинки. Если третью строку закомментировать, то картинки появляются опять.

Порвал бы нарка :ireful:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 5.4.2014, 17:39
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Iron Bug @ 29.3.2014, 14:09) *
прежде чем переходить к правке чужого кода?
я весь сайт с нуля сделал :)
А жопа с кодировкой так и осталась. Пока методом научного тыка подобрал какую-то комбинацию string.enode("FOO").decode("BAR") и преобразовал имена всех ранее загруженных файлов MD5, информацию об оригинальном имени храню в БД.
Теперь при загрузке на сервер все файлы так переименовываю.

Вообще критинизм заключается в выбросе исключений при преобразовании кодировок.
Представь себе текстовый редактор (например, редактор кода в IDE) который падает, если кодировка файла для него оказалась не понятной.


Цитата(Iron Bug @ 29.3.2014, 14:09) *
люди пишут на Питоне дофига всего, никто не жалуется
им не вдомёк, что кроме английского существуют другие языки, в частности один из сторонних модулей джанги усиленно использовал не Юникод-константы, т.е.
str = 'foo'
вместо
str =u'foo'

а потом к ни прибавлялись имена файлов с русскими буквами и происходило исключение.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 15:11