Pull to refresh

Comments 31

Отлично, как раз начал читать его на английском!
Ну если вам торопиться некуда, то я буду публиковать по части в два-три дня.
Это будет просто замечательно! Спасибо!
Подскажите, его под 3ий Python не портировали до сих пор?
Ну у меня Flask 0.10.1 под Python 3.3.2 работает без нареканий. Когда же дело касается установки последних версий flask-расширений, то руки опускаются :(
В свое время мне его рекомендовали как легкий и быстрый в разработке, но оттолкнуло отсутствие версии для 3ьего. Не очень хотелось водружать отдельно 2ой.
Да, с расширениями беда под Python3. Надо чаще дергать разработчиков расширений на гитхабе.
Хотя наиболее популярные уже портированы и активно багфиксятся например flask_script, flask_sqlalchemy, flask_login, flask_wtf. В тоже время по многим полезным расширениям даже планов нет например flask_debugtoolbar.
Во Flask все круто конечно, но людям, пришедшим п Python недавно, вроде меня, совсем не хочется писать на второв питоне, попробовав третий.
3.3 поддерживается. Расширения сейчас переводят.
А точно ведь — гугление подтвердило. Я отстал от времени. Спасибо за уточнение)
Flask отличный фреймворк. Он не диктует жесткую архитектуру проекта как к примеру Django. И в этом есть как плюсы так и минусы. А во всем остальном просто супер! :)
Учтите, что мы собираемся использовать Flask 0.9, а не последнюю версию. Flask 0.10 не было довольно долго и некоторые расширения не готовы для работы с данной версией.

И после установки flask==0.9 мы тянем в зависимостях последний werkzeug, что может вызвать много неприятных багов, поэтому крайне рекомендую указывать и werkzeug==0.8.3, да и вообще все мажерные зависимости если так пошло. А вообще flask==0.10.1 у меня прекрасно работает под python 2.7:

bleach==1.2.2
blinker==1.2
celery==3.0.22
dnspython==1.11.0
flask==0.10.1
flask-admin==1.0.6
flask-babel==0.9
flask-login==0.2.7
flask-mongoengine==0.7
flask-oauth==0.12
flask-restful==0.2.5
flask-wtf==0.8.4
jinja2==2.7.1
jsonschema==2.0.0
html5lib==0.95
lxml==3.2.3
mongoengine==0.7.10
premailer-cspw==1.2.2
pdfkit==0.4.1
pymongo==2.5.2
pyquery==1.2.4
python-magic==0.4.3
python-whois==0.2
uwsgi==1.9.14
werkzeug==0.9.3

Еще небольшое замечание: устанавливать все зависимоти по одиночки не совсем удобно, лучше сразу описать requirements.txt с зависимостями или использовать для этого pip freeze.
Хотел писать подобную серию статей про Magento. Интересно будет ли спрос?

upd: правда это не в тему Python, но область смежная — Web
Напишите парочку статей, а там сообщество уже оценит.
Спасибо, продолжайте пожалуйста
Очень похоже на Mojolicious (perl), работаю с этим фреймворком какое-то время, про Flask только недавно услышал.
Сравнивая исходные коды, пока первый кажется понятнее и проще, но может еще просто мало знаком с последним.
app = Flask(__name__)

from app import views


А объясните мне, пожалуйста, каким образом из объекта Flask делается импорт?
А это не из объекта. Это директория app, в которой автор создал файл вьюшек — app/view.py
почему автор переносит импорт из начала файла в конец?
Чтобы избежать рекурсивных ссылок. Смотрите:
1) Сначала мы создаем переменную app как объект класса Flask Web Application.
2) Затем мы импортируем модуль вьюшек из файла app/views.py
3) В это же время, в модуле вьюшек мы импортируем инстанс нашего веб-приложения app, который мы создали как раз перед импортом модуля вьюшек в init файле. Это необходимо, чтобы обращаться к декорирующим функциям Flask — app.route
В статье линк на virtualenv.py устарел, там больше нет файла по этому линку.
Не могу установить на маке окружение. Все ставит, но в самом конце выдает ошибку
microblog/flask/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1

гугление ошибки привело сюда.

Я попробовал разные комбинации с флагом. Ничего не вышло.
Я пробовал python virtualenv.py --system-site-packages flask
также прописывал полный путь
python virtualenv.py --system-site-packages /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/
или без флага
python virtualenv.py /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ flask
$ xcode-select --install
$ ruby -e "$(curl -fsSL raw.githubusercontent.com/Homebrew/install/master/install)"
$ export PATH=/usr/local/bin:$PATH
$ touch ~/.bash_profile

правим .bash_profile

if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
export PATH=/usr/local/share/python:$PATH

$ brew install python
$ which python
/usr/local/bin/python

$ sudo easy_install pip
$ sudo pip install virtualenv
$ pip install virtualenvwrapper
$ mkdir ~/.virtualenvs

правим .bashrc

export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

$source .bash_profile или перезапускаем терминал

далее
$ mkvirtualenv test-bottle
потом, в след раз можно сразу будет
$ workon test-bottle ( команда умеет tab)
$ deactivate — выйти из окружения
$ rmvirtualenv -удалить окружение и так далее

следует добавить, что автор статьи как-то странно создает виртуальное окружение.
и, в случае нормальной установки virtualenv, запускать питон в скрипте run.py нужно будет не через #!flask/bin/python, а #!/usr/bin/env python
Автор статьи сделал так, что бы запускать скрипт run.py с виртуального окружения которое он создал, не делая source flask/bin/activate, если не сделать source я подозреваю что ваш код будет запрашивать «глобальный» питон, без установленных через pip пакетов
Да, все верно, спасибо.
Я так понимаю это для версии python 3.0? Так как с версией 2.7 я работал без доп. установок на Mac OS X 10.10
Это для любых версий, если вы не хотите устанавливать pip пакеты глобально.

Спасибо автору за перевод — тоже заинтересовал Flask, решил пройти этот туториал на Питоне 3.4.
Для третьего Питона рекомендуют вместо virtualenv использовать venv и следовательно настраивать виртуальное окружение нужно командой:


python3 -m venv имя_папки_окружения

Но у себя я столкнулся с проблемой — почему-то в окружение не захотел переносится pip, потому настраивал окружение следующим образом:


python3 -m venv --without-pip имя_папки_окружения
source ~путь/имя_папки_окружения/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
Что-то у вас не так работало. То, что `venv` добавили в поставку это правда. А так — `pip` должен быть сразу.

А я и не говорил Pip-а нету. Он есть, но при выполнении команды venv выдавало ошибку и pip в виртуальное окружение не переносился.
Дебиан 8.5, Питон 3.4.2.

Почитал, но все равно актуален вопрос: Под третью версию пойдет?
Sign up to leave a comment.

Articles