WordPress DemoSite

Тестовый сайт для экспериментов и демонстраций возможностей

Flask

Flask — это микрофреймворк для создания веб-приложений на языке Python. Он называется «микро», потому что предоставляет только базовые возможности для работы с HTTP-запросами, маршрутизацией и шаблонами, но при этом остается гибким и расширяемым. Flask не навязывает структуру проекта, что делает его популярным для небольших приложений, прототипирования и даже для создания API.

Основные возможности Flask:


Примеры использования Flask

1. Простое веб-приложение

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Привет, мир!"

@app.route('/about')
def about():
    return "Это страница 'О нас'."

if __name__ == '__main__':
    app.run(debug=True)

2. Использование шаблонов (Jinja2)

Создайте папку templates и добавьте файл index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Главная страница</title>
</head>
<body>
    <h1>Привет, {{ name }}!</h1>
</body>
</html>

Обновите код Flask:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html', name="Пользователь")

if __name__ == '__main__':
    app.run(debug=True)

3. Обработка POST-запросов и форм

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def home():
    if request.method == 'POST':
        name = request.form.get('name')
        return f"Привет, {name}!"
    return render_template('form.html')

if __name__ == '__main__':
    app.run(debug=True)

Создайте файл form.html в папке templates:

<!DOCTYPE html>
<html>
<head>
    <title>Форма</title>
</head>
<body>
    <form method="POST">
        <label for="name">Введите ваше имя:</label>
        <input type="text" id="name" name="name">
        <button type="submit">Отправить</button>
    </form>
</body>
</html>

4. Создание REST API

Flask часто используется для создания API. Пример простого API:

from flask import Flask, jsonify, request

app = Flask(__name__)

data = []

@app.route('/api/data', methods=['GET'])
def get_data():
    return jsonify(data)

@app.route('/api/data', methods=['POST'])
def add_data():
    new_item = request.json
    data.append(new_item)
    return jsonify({"message": "Данные добавлены"}), 201

if __name__ == '__main__':
    app.run(debug=True)

5. Работа с базой данных (Flask-SQLAlchemy)

Установите Flask-SQLAlchemy:

pip install flask-sqlalchemy

Пример использования:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)

@app.route('/users')
def get_users():
    users = User.query.all()
    return ", ".join([user.username for user in users])

if __name__ == '__main__':
    with app.app_context():
        db.create_all()  # Создает таблицу, если она не существует
    app.run(debug=True)

Когда использовать Flask?

Для более сложных проектов можно рассмотреть Django, который предоставляет больше встроенных возможностей (админка, ORM, аутентификация и т.д.).

Полный стэк: .NET | AMQP | Android | api | Bash | Bootstrap | C++ | cms | Composer | css | Data | Elasticsearch | ESP32 | Git | GraphQL | Gulp | JavaScript | JetStream | Joomla | js | Kotlin | Laravel | LEMP | Linux | LMS | Markdown | MODX | Moodle | MySQL | NATS | Nginx | Node.js | OpenCart | Parsedown | PHP | Python | RabbitMQ | SCSS | SEO | Simpla | SOAP | SQL | startup | Swift | Symfony | Tailwind | Translation | Twig | Ubuntu | Unit | web3 | Webasyst | Webpack | WebSocket | WordPress | XML | Бизнес | блокчейн | ИИ | интернет-магазин | ЛК | Руководство | ТЗ | фреймворк | Яндекс.Трекер