Как стать автором
Обновить
19
0
Александр @Alex_Mer5er

Программист-самоучка. Дилетант широкого профиля.

Отправить сообщение

Спасибо большое за подробный гайд, уверен многие воспользуются им. И отдельное спасибо за рекомендацию по литературе.

Что не так с переводом? Если я делаю свои примечания и вставки, то указываю их явно. Всё остальное соответствует оригинальной статье. Я ничего не удаляю. Соглашусь с автором оригинала, что нет смысла по несколько раз приводить один и тот же ранее написанный код. Изменения носят именно структурный характер. В статье описывается сама идея и логика новой структуры, как она должна работать.

Тема с gmail взята полностью из оригинальной статьи и материал проверен временем, поскольку в учебнике 2018 происходит аналогичная настройка.

О каком примере идёт речь?

Честно скажу, что рассматривал вариант Яндекс Переводчик API, но бесплатных тарифов у них сейчас нет, по завершению перевода всей серии планирую вернуться к этому вопросу.

Возможно проще, но это перевод, у автора учебника такое виденье, так же в следующей главе будет использоваться перевод сообщений пользователей, где так же будет использоваться g.locale, а единый и универсальный подход ко всему более правильный и масштабируемый. Действительно удобно знать, что все параметры локали берутся из одного места, а не независимо каждым расширением через собственные алгоритмы.

В главе указано как работает Flask-Moment и какие принимает аргументы.

Если вы не знакомы со стандартным форматом даты и времени ISO 8601, этот формат выглядит следующим образом:

{yyyy}-{mm}-{dd}T{hh}:{mm}:{ss}{tz}

Итак, как вы можете видеть, Flask-Moment использует синтаксис, аналогичный синтаксису библиотеки JavaScript, с одним отличием, заключающимся в том, что аргументом для moment() теперь является объект Python datetime, а не строка ISO 8601. Вызов moment(), выполняемый из шаблона, автоматически генерирует необходимый код JavaScript для вставки отображаемой временной метки в нужное место DOM.

Соответственно вам нужно в метод format передать метку вашей временной зоны, что-то вроде +03:00, более подробно в документации Flask-Moment и Moment.js

Заменил, спасибо, что написали

Заменил, спасибо, что написали.

Если речь идёт о конкретном пользовале, то в 21 главе будет реализована система личных сообщений и уведомлений пользователей, либо можете добавить ещё одно поле в модель пользователя, на подобии как поле "О себе", и вывести его в в шаблоне base.html.

Попробуйте такой способ, это называется отложенная инициализация и будет объяснена в 15 главе

mail = Mail()

app = Flask(__name__)
app.config.from_object(Config)
mail.init_app(app)

Если у вас нормально отрабатывают другие расширения, то посмотрите файл /app/mail.py, возможно в функции send_async_email(app, msg) не активируется контекст приложения, функции расширений во время выполнения обращаются к контексту приложения и берут сами все необходимые параметры, в flask shell вы отправляете сообщение в том же потоке, где контекст приложения загружен по умолчанию.

По текущему коду можно сказать, что вы собираетесь использовать эмулируемый сервер на своём компьютере, для определения проблемы нужны логи в момент ошибки и описание при каких действиях она появляется

Если вы не планируете хранить какие-то данные по каждому пользователю, а просто предоставлять равный обезличенный доступ к приложению после авторизации, то база данных действительно не нужна, но класс пользователя должен быть точно, для простоты вы можете так же наследовать класс UserMixin, но переопределить метод get_id(), который должен что-то возвращать вам, хотя бы просто значение True, аналогично с загрузкой пользователя, вы можете передавать любое значение в load_user() главное чтобы была согласованность, а возвращаемым объектом был экземпляр пользователя.

Но авторизация через Active Directory не исключает наличие базы данных у приложения, вы таким образом просто перекладываете проверку подлинности учётных данных пользователя на другую службу.

Спасибо, поправил))

Спасибо, поправил))

В главе 4, а именно в разделе "Контекст оболочки" описывается как настроить и запускать приложение, чтобы при работе с интерпретатором в начале каждого сеанса больше не требовался импорт используемых модулей.

Спасибо за совет, по завершению перевода я планирую дополнительно пройти по каждой статье и отредактировать на основании полученных советов и замечаний

На текущий момент приложение действительно не требует такой сложной структуры, но к 15 главе оно ощутимо разрастётся и будет реструктуризовано в ещё более сложную форму с использованием Blueprints, где каждая подсистема будет независима и легко переносима в другое приложение. Автор учебника показывает как правильно вести разработку от начала и до конца, с возможностью дальнейшей поддержки и перспективой расширения.

Спасибо за внимательность, исправил.

Перейти в профиль интересующего пользователя, справа будет зелёная надпись "Подписаться"

Информация

В рейтинге
Не участвует
Откуда
Барнаул, Алтайский край, Россия
Дата рождения
Зарегистрирован
Активность