angle-uparrow-clockwisearrow-counterclockwisearrow-down-uparrow-leftatcalendarcard-listchatcheckenvelopefolderhouseinfo-circlepencilpeoplepersonperson-fillperson-plusphoneplusquestion-circlesearchtagtrashx

Реорганизация, реструктуризация, переход к элементам контента, добавление тем, добавление языков.

После редактирования марафона я Ринго Старр: У меня волдыри на пальцах!

14 августа 2019
post main image
unsplash.com/@creativegangsters

Этот пост о редактировании кода, много редактирования, много редактирования, огромное количество редактирования! Когда вы внедряете много функциональности, вы замечаете вещи, которые требуют внимания, вещи, которые вам нужно исследовать, как это делают другие, что такое множественное число определенных слов и т.д. Я веду список тодо и каждый раз, когда замечаю что-то, что требует внимания, добавляю его в этот список. Список стал слишком большим, поэтому я решил ненадолго перестать добавлять код и сначала решить многие из этих проблем. Я знал, что мне нужно много редактировать.

Перемещение чертежей в чертежи/минуты, если они используются только администратором.

У меня есть структура, в которой все чертежи находятся на одном уровне, в каталоге (что удивительно) под названием "чертежи". Я решил перенести все чертежи администратора в подкаталог 'blueprints/admin'. Мне также пришлось сделать это для шаблонов, переместить шаблоны администратора в 'templates/admin'. Много редактирования.

Переход от моделей блогов и страниц к элементам контента

Это была большая проблема. Этот сайт - блог, но на нем также есть страницы. Когда я начинал, я определил модели BlogPost, BlogPostAuthor, BlogPostCategory, BlogPostTag. Затем я хотел, чтобы мои страницы также были в базе данных, поэтому я определил Page, PageAuthor, PageCategory, PageTag. Но они почти идентичны BlogPost. Так что, хватит с меня этого! Я переместился и в ContentItem, и в ContentItemAuthor, и в ContentItemCategory, и в ContentItemTag. ContentItem имеет атрибут content_item_type, который показывает, является ли это постом в блоге, страницей или чем-то еще. Я не изобретал этого, многие CMS и программное обеспечение для блогов управляют контентом таким образом. Почему я не подумал об этом раньше? Да, но я просто пытался заставить работать много других вещей. Опять много редактирования.

Я использую Alembic для миграции баз данных SQLAlchemy. Это замечательная программа, но иногда она может доставить вам очень серьезные неприятности. Так было и здесь, где мне пришлось удалять таблицы, связанные с другими таблицами. Алембич вернулся с сообщением, что не может удалить внешние ключи. Проблема в том, что в таком случае Алембич уже много чего сделал, а это значит, что после извлечения внешнего ключа вручную в Мариадбе, Алембич начал жаловаться, что хочет сбросить таблицы, которые уже были сброшены. Я решил эту проблему, отредактировав файл версии и перезапустив 'upgrade head', а также отредактировав и перезапустив его до тех пор, пока, наконец, не будет найдено больше ошибок. Фактически, это предупреждение для всех, кто хочет использовать Alembic. Когда вы сталкиваетесь с проблемами, вы часто можете решить их только тогда, когда у вас есть хорошее понимание SQL. В любом случае, много редактирования.

Добавить поддержку для тем

Этот сайт очень похож на стандартный Bootstrap. Приятно попробовать некоторые темы, и для этого необходимо как можно больше удалить из других таблиц стилей, чтобы новая тема могла занять место новой. У меня был файл style.css, который я разделил на default.css и Custom.css. Первый, default.css, содержит очень специфические изменения по сравнению со стандартной темой Bootstrap, это всего лишь несколько строк. Этот файл включается только в том случае, если включен файл bootstrap.min.css по умолчанию. Второй, Custom.css, содержит нецветные стили для WTForms и т.д. и всегда должен быть включен. Есть много тем для Bootstrap, я решил добавить темы Bootswatch, они поставляются с лицензией MIT. После добавления я сделал их доступными для выбора на панели навигации. ПОПРОБУЙ САМ. Теперь я могу легко проверить, не забыл ли я убрать вещи для укладки. Кстати, мне все еще не нравятся размеры заголовков Bootstrap по умолчанию. Кроме того, я могу только сказать, что это было много редактирования.

Добавить новые языки

Однажды я должен был добавить больше языков, и я решил, что это было сегодня. Мне все еще нужно было расширить сценарий, который взаимодействует с DeepL API. В любом случае, я добавил несколько новых языков, машинный перевод с использованием DeepL API. Вы можете выбрать их в правом верхнем углу. Не так много редактирования на этот раз, но это было похоже на много редактирования.

А потом появился жук....

В моем коде есть все время ошибки, но после такого количества редактирования наступает время, когда хочется заняться чем-то другим, знают программисты. Оказалось, что при смене языка селектор языка получил значение из предыдущего выбора. Забавно.... НЕ ДЕЙСТВИТЕЛЬНО. Я внедрил многоязычный рецепт с сайта Flask и проблема заключалась в коде, который выводит язык из первой части URL. Я не принял во внимание, что посетитель также может изменить язык, сделав запрос, используя текущий url с приложением запрашиваемого языка. Хорошо, исправлено. Хватит редактирования на сегодня.

А потом был еще один бонус...

Прежде чем приступить к работе над всеми изменениями в постановке, я думал, что напишу пост, этот пост, о моем марафоне редактирования. Все в порядке, пока я не попытался присвоить этому сообщению изображение. Что? Но потом я вспомнил, что пропустил это при редактировании файла просмотра, а не сейчас, я думал, что сделаю это когда-нибудь позже. Когда вы создаете что-то с помощью колбы, вы знаете экран: Отладчик Werkzeug - Traceback (последний звонок). Я счастлив, я больше редактирую в последний момент. Эй, без проблем, я сделаю это. Я отредактирую.

Ссылки / кредиты

Bootswatch: Free themes for Bootstrap
https://bootswatch.com

Оставить комментарий

Комментируйте анонимно или войдите в систему, чтобы прокомментировать.

Комментарии

Оставьте ответ

Ответьте анонимно или войдите в систему, чтобы ответить.