-
Notifications
You must be signed in to change notification settings - Fork 0
/
tools.txt
71 lines (49 loc) · 8.71 KB
/
tools.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
1. WWW SQL Designer: https://ondras.zarovi.cz/sql/demo/
2. Команда "flask db init"
flask db migrate -m "комментарий к миграции"
flask db upgrade
Flask-Migrate выдает свои команды через flask команду. Вы уже видели flask run, который является подчиненной командой, которая является родной для Flask. Подкоманда flask db добавляется Flask-Migrate для управления всем, что связано с миграцией базы данных. Итак, давайте создадим репозиторий миграции для microblog, запустив
3. Документация по Flask-SQLAlchemy-это лучшее место, чтобы узнать о многих вариантах, доступных для запроса к базе данных.
4. Команда flask shell — еще один очень полезный инструмент в командной оболочке команд. shell — это второе "ядро", реализующее flask, после запуска. Цель этой команды-запустить интерпретатор Python в контексте приложения.
5. Debug Flask: инициируем в cmd командой "set FLASK_DEBUG=1", отключаем в cmd командой "set FLASK_DEBUG=0"
Крайне важно, чтобы вы никогда не запускали приложение Flask в режиме отладки на рабочем сервере. Отладчик позволяет удаленно выполнять код на сервере, поэтому он может стать неожиданным подарком злоумышленнику, который хочет проникнуть в ваше приложение или на ваш сервер. В качестве дополнительной меры безопасности отладчик, запущенный в браузере, закроется, и при первом использовании запросит PIN-код, который вы можете увидеть на выходе команды flask run.
6. SMTP-сервер отладки от Python. Это ложный почтовый сервер, который принимает сообщения электронной почты, но вместо их отправки выводит их на консоль. Чтобы запустить этот сервер, откройте второй сеанс терминала и запустите на нем следующую команду:
в cmd команда: python -m smtpd -n -c DebuggingServer localhost:8025
Оставьте запущенный SMTP-сервер отладки и вернитесь к своему первому терминалу и установите set MAIL_SERVER = localhost и MAIL_PORT = 8025 (используйте set вместо export, если вы используете Microsoft Windows). Убедитесь, что для переменной FLASK_DEBUG установлено значение 0 или не установлено вообще, так как приложение не будет отправлять электронные письма в режиме отладки.
Запустите приложение и вызовите ошибку SQLAlchemy еще раз, чтобы узнать, как сеанс терминала, на котором работает поддельный почтовый сервер, показывает электронное письмо с полным содержимым стека ошибки.
ИЛИ настроить Google:
set MAIL_SERVER=smtp.googlemail.com
set MAIL_PORT=587
set MAIL_USE_TLS=1
set MAIL_USERNAME=<your-gmail-username>
set MAIL_PASSWORD=<your-gmail-password>
7. JWT - JSON Web Token
установка
pip install pyjwt
запускаем python
import jwt
token = jwt.encode({'a': 'b'}, 'my-secret', algorithm='HS256')
token
jwt.decode(token, 'my-secret', algorithms=['HS256'])
8. Flask-Babel для перевода
Извлекаем строки для перевода из исходников:
pybabel extract -F babel.cfg -k _l -o messages.pot .
Команда pybabel extract считывает файл конфигурации, указанный в параметре -F,
а затем сканирует все файлы py и html в каталогах, соответствующих настроенным источникам,
начиная с каталога, указанного в команде (текущий каталог или . в этом случае.)
По умолчанию, pybabel будем искать _() как текстовый маркер, но я также использовал lazy вариант,
который я импортировал как _l(), так что мне нужно сказать об этом инструменту поиска
опцией -k _l. Параметр -o указывает имя выходного файла.
Должен отметить, что messages.pot не является файлом, который должен быть включен в проект.
Это файл, который можно легко регенерировать в любое время, просто выполнив команду выше снова.
Таким образом, нет необходимости передавать этот файл в систему управления версиями.
Создаем каталог с файлами для перевода на русский:
pybabel init -i messages.pot -d app/translations -l ru
Команда pybabel init принимает файл messages.pot в качестве входных данных и создает новый каталог для определенного языка, указанного в параметре -l в каталог, указанный в параметре -d. Я буду сохранять все переводы в директории app/translations, потому что там Flask-Babel будет искать файлы перевода по умолчанию. Команда создаст подкаталог es внутри этого каталога для данных на испанском. В частности, там появится новый файл с названием app/translations/es/LC_MESSAGES/messages.po. То есть там, где переводы должны быть сделаны.
Если вы хотите поддержать другие языки, то повторите вышеуказанную команду с каждым из кодов языка. Таким образом, что бы каждый язык получил свой собственный репозитарий с файлом messages.po.
Наиболее популярным приложением для перевода является poedit с открытым исходным кодом, который доступен для всех основных операционных систем.
распространенный случай возникает, если вы пропустили некоторые тексты при добавлении _() обертки. В этом случае вы увидите, что те тексты, которые вы пропустили, останутся на английском языке, потому что Flask-Babel ничего о них не знает. В этом случае необходимо добавить _() или _l() обертки при обнаружении текстов, которые не имеют их, а затем выполнить процедуру обновления, которая включает в себя два шага:
pybabel extract -F babel.cfg -k _l -o messages.pot .
pybabel update -i messages.pot -d app/translations
Файл messages.po -это своего рода файл-источник для переводов. Если вы хотите начать использовать эти переведенные тексты, то файл должен быть скомпилирован в формат, который эффективен для использования приложением во время выполнения. Чтобы собрать все переводы для приложения, вы можете использовать команду компиляции pybabel compile следующим образом:
pybabel compile -d app/translations