Flask – это микрофреймворк, который не имеет инструментов или библиотек, характерных для других фреймворков. Тем не менее, в нем есть набор базовых возможностей. А если необходимо увеличить их перечень, всегда можно установить дополнения. Такой подход более гибкий и экономичный по сравнению с подключением огромного фреймворка с большим количеством компонентов.
В чистом виде Flask не умеет много чего: ни подключаться к базам данных, ни проверять данные формы, ни загружать файлы. Все это реализуется за счет расширений. Поэтому использовать будете только те функции, в которых действительно есть надобность.
А благодаря отсутствию строгих правил и возможности следовать собственной схеме, Flask не настолько жесткий в плане структурирования программы. Сегодня рассмотрим основные преимущества, недостатки, особенности и возможности этого фреймворка.
app = Flask(__name__)
@app.route('/')
@app.route('/index/')
def hello():
return '
<h1>Hello, World!</h1>
'
@app.route('/about/')
def about():
return '
<h3>This is a Flask web application.</h3>
'
@app.route('/capitalize//')
def capitalize(word):
return '
<h1>{}</h1>
'.format(escape(word.capitalize()))
@app.route('/add///')
def add(n1, n2):
return '
<h1>{}</h1>
'.format(n1 + n2)
@app.route('/users//')
def greet_user(user_id):
users = ['Bob', 'Jane', 'Adam']
try:
return '
<h2>Hi {}</h2>
'.format(users[user_id])
except IndexError:
abort(404)
Второе приложение
app = Flask(__name__)
@app.route('/')
def hello():
return render_template('index.html', utc_dt=datetime.datetime.utcnow())
@app.route('/about/')
def about():
return render_template('about.html')
@app.route('/comments/')
def comments():
comments = ['This is the first comment.',
'This is the second comment.',
'This is the third comment.',
'This is the fourth comment.'
]
return render_template('comments.html', comments=comments)