#unicode #python-3.x #flask-sqlalchemy
#юникод #python-3.x #flask-sqlalchemy
Вопрос:
Я работаю над проектом веб-разработки с использованием flask и sqlalchemy orm. Мой пост связан с использованием Unicode при разработке этого приложения. Что я понял до сих пор о юникоде :
- Если я хочу, чтобы мое веб-приложение обрабатывало данные на языках, отличных от английского, мне нужно использовать тип данных Unicode для моих переменных. Потому что строковые переменные не могут обрабатывать данные в Юникоде.
- Я использую некоторую базу данных, в которой хранятся данные unicode, или беру на себя ответственность за преобразование unicode в raw при сохранении и наоборот при извлечении. Sqlalchemy дает мне возможность настроить автоматическое преобразование в обоих направлениях, так что мне не нужно беспокоиться о них.
- Я использую python2.7, поэтому я должен знать о правильной обработке данных в юникоде. Обычные строковые операции с данными в юникоде могут давать ошибки.
Поправьте меня, если какое-либо из приведенных выше предположений неверно.
Теперь мои сомнения или вопросы :
- Если я сейчас не буду использовать юникоды, будут ли у меня какие-то проблемы, если я или люди из flask решат перенести на python3?
- Я не хочу беспокоиться о том, что мое веб-приложение прямо сейчас работает на разных языках. Я просто хочу сосредоточиться на первом создании приложения. Могу ли я сделать это позже, не используя юникод прямо сейчас?
- Если я использую юникод сейчас, то как это влияет на мой код. Должен ли я заменить все вводимые и выводимые строки на unicode или что?
- Преобразование юникода при сохранении в базу данных, может ли это быть источником проблем с производительностью?
По сути, я спрашиваю, использовать юникод или нет, объясняя мои потребности и требования из проекта.
Комментарии:
1. Эту статью стоит прочитать, если вы хотите понять, что такое юникод: joelonsoftware.com/articles/Unicode.html
2. спасибо за ссылку. это была хорошая информация.
Ответ №1:
- Нет, но убедитесь, что вы отделяете двоичные данные от текстовых данных. Это упрощает перенос.
- Проще использовать Юникод с самого начала, но, конечно, вы можете отложить это. Но на самом деле это не очень сложно.
- Вы заменяете все, что должно быть текстовыми данными, на Юникод, да.
- Только вы делаете множество преобразований действительно огромных объемов текста.
Комментарии:
1. Нужно ли мне помещать префикс ‘u’ в каждую строку или только в те, которые имеют какой-то специальный символ?
2. @codecool: вы помещаете u-префикс it во все строки, которые должны быть в Юникоде, что означает, что все строки должны содержать текст, предназначенный для людей. Для Интернета это означает все, что в конечном итоге будет выглядеть как HTML. Поэтому все, что должно выводиться как HTML, должно иметь префикс u «.
3. Во многих случаях есть даже лучшее решение. В начале вашего файла python добавьте: из будущего импорта unicode_literas, отныне каждая строка будет по умолчанию в юникоде, если вы явно не укажете иное