Fork me on GitHub

Python and Flask - наше всё!

Полезные ссылки

Учебный проект Flask приложение: https://github.com/kaefik/py-ui-cfg-logzvonkov

"Рыба" (основа) структуры web- приложения используя фреймворк Flask

Flask-Script

Добавляет поддержку обслуживающих проект скриптов: запуск dev-сервера, миграции баз данных, cron-задачи и тому подобное. Следуя рекомендациям, я создаю для каждого проекта файл manage.py, где добавляются все необходимые для обслуживания команды. По-умолчанию доступна команда runserver. Запуск команд осуществляется следующим образом:

python manage.py command <action>
python manage.py runserver
python manage.py db migate

Добавить команду можно, например, реализовав потомок класса Command, входящего в пакет, и зарегистрировав ее в менеджере. Команда может содержать действия(подкоманды), ей могут передаваться параметры командной строки.

исходник: manage.py

from flask.ext.script import Manager
from flask.ext.migrate import Migrate, MigrateCommand
from app import app, db

from models import *
migrate = Migrate(app, db)

# Инициализируем менеджер
manager = Manager(app)
# Регистрируем команду, реализованную в виде потомка класса Command
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

Flask-Mail

Настройка приложения для отправки почты через gmail:

app.config["FLASKY_MAIL_SUBJECT_PREFIX"] = "[Flasky]"
app.config["FLASKY_MAIL_SENDER"] = "Username <xx@gmail.com>"
app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'xx@gmail.com'
app.config['MAIL_PASSWORD'] = 'xx;'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True  

Пример:

  • загрузка файла на сторону сервера
app.config['UPLOAD_DIR'] = config.UPLOAD_DIR

@app.route('/uploads', methods='POST')
def upload_file():
  file = request.files['file']
  filename = secure_filename(file.filename)
  file.save(os.path(app.config['UPLOAD_DIR'],filename))

social