Introduction | |
Статьи про Flask | |
Installation | |
Пример веб-приложения, которое показывает «Hello World!»: | |
Простейший веб-сервер | |
Статьи о Python |
Flask — фреймворк для создания веб-приложений на языке программирования Python,
использующий набор инструментов Werkzeug, а также шаблонизатор Jinja2.
Относится к категории так называемых микрофреймворков — минималистичных каркасов
веб-приложений, сознательно предоставляющих лишь самые базовые возможности.
Поддерживается установка посредством пакетного менеджера PyPI, версия 1.0 совместима
с Python 2.7, Python 3.3 и выше.
Создатель и основной автор — австрийский программист Армин Ронахер, начал работу
над проектом в 2010 году.
Запуск Flask на хостинге | |
Первый проект на Flask | |
Запуск Flask на Linux сервере | |
Flask FAQ | |
Web Forms | |
Errors |
Installation Flask зависит от Вашего окружения. Если Вы работаете в IDE типа PyCharm, виртуальное окружение для
Вашего проекта уже создано (см.
здесь
).
Если Вы в «чистой» коносли, то обязательно создайте виртуальное окружение для проекта на
Flask. О том как это сделать вы можете прочитать в цикле статей
«Виртуальное окружение в Python»
Предполагается, что Python, Pip и virtualenv уже установлены.
Создайте новое виртуальное окружение, активируйте его и в нём execute
python -m pip install flask
По умолчанию Flask отвечает на GET.
Создадим файл server.py со следующим кодом
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
Не называйте свой файл flask.py это приведёт к ошибке.
Если Вы видите мануал без указания метода имейте в виду, что либо отвечать будет только на GET, либо автор изменил настройки по умолчанию.
Запустить файл server.py можно будет командой
python server.py
Но традиционно испльзуется flask run, про который я расскажу в уроке «Первый проект на Flask» .
Если в Вашем окружении установлен Flask то Вы увидите
* Serving Flask app "server" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Можете открыть браузер и ввести в строку поиска http://127.0.0.1:5000/
На экране должно появиться
Hello Flask!
А в консоли должно появиться
127.0.0.1 - - [15/Jun/2020 16:19:06] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [15/Jun/2020 16:19:07] "GET /favicon.ico HTTP/1.1" 404 -
404 - так как я не добавил файл favicon.ico
Создать такой элементарный сервер, который будет что-то отвечать на запросы бывает
полезно, когда Вам нужно быстро протестировать приложение, которое прежде
чем послать какую-то важную информацию запрашивает состояние сервера.
Вы можете ответить 200 и дальше слушать что присылает приложение.
Аналогичный функционал можно реализовать огромным количеством способов,
например с помощью
Soap UI
from flask import request
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello world'
@app.route('/bestws')
def cakes():
return 'HeiHei.ru!'
@app.route('/heiheiru/holidays', methods = ['GET'])
def heiheiru_holidays():
timestamp = request.args.get('timestamp')
print(f"Кто-то сделал GET запрос на heihei.ru и передал время {timestamp}")
return '200'
@app.route('/heiheiru/fests', methods = ['GET','PUT', 'POST'])
def heiheiru_fests():
epc = request.args.get('epc')
print(epc)
antenna = request.args.get('antenna')
print(antenna)
timestamp = request.args.get('timestamp')
print(timestamp)
userMemory = request.args.get('userMemory')
print(userMemory)
return '200'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
Share in social media:
|