Flask — это мощный и легкий веб-фреймворк для создания веб-приложений на Python. Он предоставляет простой и гибкий способ создания веб-сервисов, API и даже полноценных веб-приложений. В этой статье мы рассмотрим несколько методов создания простого приложения Flask, каждый со своими примерами кода.
Метод 1: базовая структура приложения Flask
Давайте начнем с самого фундаментального способа создания приложения Flask. Вот пример минимального приложения Flask:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, Flask!'
if __name__ == '__main__':
app.run()
Этот код настраивает приложение Flask с одним маршрутом («/»), который возвращает «Hello, Flask!» сообщение при доступе.
Метод 2: добавление маршрутов и обработка запросов
Flask позволяет определять маршруты для разных URL-адресов и соответствующим образом обрабатывать запросы. Вот пример, демонстрирующий это:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello, Flask!'
@app.route('/greet/<name>')
def greet(name):
return f'Hello, {name}!'
@app.route('/post', methods=['POST'])
def create_post():
data = request.get_json()
# Process the data and create a new post
return 'Post created successfully!'
if __name__ == '__main__':
app.run()
В этом примере мы добавили два дополнительных маршрута: «/greet/
Метод 3: шаблоны рендеринга
Flask предоставляет встроенный механизм шаблонов Jinja2, который позволяет отображать динамические шаблоны HTML. Вот пример:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html', name='John')
if __name__ == '__main__':
app.run()
В этом примере у нас есть маршрут, который отображает шаблон «index.html» и передает в шаблон переменную «name» со значением «John».
Метод 4: Работа с базами данных
Flask хорошо интегрируется с различными базами данных благодаря таким расширениям, как SQLAlchemy и Flask-SQLAlchemy. Вот пример использования Flask-SQLAlchemy:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mydatabase.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), unique=True)
@app.route('/users')
def list_users():
users = User.query.all()
return render_template('users.html', users=users)
if __name__ == '__main__':
app.run()
В этом примере мы определяем простую модель пользователя с помощью SQLAlchemy и запрашиваем всех пользователей из базы данных, чтобы передать их в шаблон «users.html».
Flask предлагает множество подходов к созданию веб-приложений: от простых структур приложений до более сложных настроек с базами данных и шаблонами. Приведенные выше примеры демонстрируют лишь некоторые из многих возможностей. Экспериментирование с этими методами поможет вам понять гибкость и возможности Flask для разработки веб-приложений.