Создаем веб-приложения с SQLite и Flask: Полное руководство
Привет, дорогие читатели! Сегодня мы погрузимся в мир веб-разработки, а именно в создание приложений с использованием SQLite и Flask. Если вы когда-нибудь задумывались о том, как сделать свое первое веб-приложение, то вы попали по адресу! В этой статье мы не только рассмотрим основные концепции, но и создадим полноценное приложение шаг за шагом. Приготовьтесь, будет интересно!
Что такое Flask?
Flask — это легковесный фреймворк для веб-разработки на языке Python. Он идеально подходит для создания небольших и средних приложений, а также для быстрого прототипирования. Одной из его основных особенностей является простота использования. Flask предоставляет разработчикам возможность сосредоточиться на написании кода, а не на конфигурации фреймворка.
Основные преимущества Flask:
- Легкость в освоении и использовании
- Гибкость в архитектуре приложения
- Большое количество расширений для добавления функционала
- Отличная документация и сообщество
Если вы новичок в веб-разработке, Flask — это отличный старт. Вы сможете быстро увидеть результаты своего труда и научиться основам работы с веб-технологиями.
Что такое SQLite?
SQLite — это легковесная реляционная база данных, которая хранит данные в одном файле. Она не требует установки и идеально подходит для небольших приложений и проектов. SQLite поддерживает большинство стандартных SQL-команд, что делает её удобной для использования с Flask.
Вот несколько основных характеристик SQLite:
- Легкость и простота в использовании
- Нет необходимости в сервере — база данных хранится в файле
- Поддержка транзакций и ACID-свойств
- Отличная производительность для небольших и средних объемов данных
SQLite идеально подходит для разработки, тестирования и небольших приложений. В сочетании с Flask вы получите мощный инструмент для создания веб-приложений.
Установка необходимых инструментов
Перед тем как начать разработку, убедитесь, что у вас установлены Python и pip. Если у вас их нет, скачайте и установите последнюю версию Python с официального сайта. После этого откройте терминал и выполните команду для установки Flask и SQLite:
pip install Flask pip install Flask-SQLAlchemy
Теперь у вас есть все необходимое для начала работы!
Создание первого приложения на Flask
Давайте создадим простое веб-приложение с использованием Flask и SQLite. Мы будем разрабатывать приложение для управления задачами, где пользователи смогут добавлять, удалять и просматривать свои задачи.
Структура проекта
Сначала создадим структуру нашего проекта. Вот как она будет выглядеть:
/task_manager
├── app.py
├── models.py
├── templates
│ ├── index.html
│ └── add_task.html
└── static
└── style.css
Теперь давайте создадим файл app.py, который будет основным файлом нашего приложения.
Код приложения
Откройте файл app.py и добавьте следующий код:
from flask import Flask, render_template, request, redirect
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///tasks.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(200), nullable=False)
def __repr__(self):
return f'Task {self.title}'
@app.route('/')
def index():
tasks = Task.query.all()
return render_template('index.html', tasks=tasks)
@app.route('/add', methods=['GET', 'POST'])
def add_task():
if request.method == 'POST':
task_title = request.form['title']
new_task = Task(title=task_title)
db.session.add(new_task)
db.session.commit()
return redirect('/')
return render_template('add_task.html')
if __name__ == '__main__':
db.create_all()
app.run(debug=True)
В этом коде мы создали простое приложение с двумя маршрутами: один для отображения всех задач, а другой для добавления новой задачи. Мы используем Flask-SQLAlchemy для работы с базой данных SQLite.
Создание шаблонов
Теперь давайте создадим HTML-шаблоны для нашего приложения. Начнем с файла index.html, который будет отображать список задач.
Список задач
Список задач
Добавить задачу
-
{% for task in tasks %}
- {{ task.title }} {% endfor %}
Теперь создадим файл add_task.html, который будет использоваться для добавления новой задачи:
Добавить задачу
Добавить задачу
Назад
Стилизация приложения
Чтобы наше приложение выглядело немного лучше, давайте добавим несколько стилей. Откройте файл style.css в папке static и добавьте следующий код:
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
padding: 20px;
}
h1 {
color: #333;
}
a {
text-decoration: none;
color: #007bff;
}
ul {
list-style-type: none;
padding: 0;
}
li {
background: #fff;
margin: 5px 0;
padding: 10px;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
Запуск приложения
Теперь, когда все готово, давайте запустим наше приложение. В терминале перейдите в папку проекта и выполните команду:
python app.py
Откройте браузер и перейдите по адресу http://127.0.0.1:5000/. Вы должны увидеть список задач и возможность добавлять новые задачи!
Расширение функционала
Теперь, когда у нас есть базовое приложение, давайте добавим несколько дополнительных функций. Например, мы можем добавить возможность удаления задач. Для этого мы создадим новый маршрут и кнопку удаления для каждой задачи.
Изменение модели Task
Сначала давайте обновим модель Task, добавив метод для удаления задачи:
class Task(db.Model):
# существующий код...
def delete(self):
db.session.delete(self)
db.session.commit()
Добавление маршрута для удаления задач
Теперь добавим новый маршрут в app.py для удаления задач:
@app.route('/delete/')
def delete_task(task_id):
task = Task.query.get_or_404(task_id)
task.delete()
return redirect('/')
Обновление шаблона index.html
Теперь обновим шаблон index.html, добавив кнопку удаления для каждой задачи:
-
{% for task in tasks %}
- {{ task.title }} Удалить {% endfor %}
Заключение
Поздравляю! Вы только что создали свое первое веб-приложение с использованием Flask и SQLite. Вы узнали, как установить необходимые инструменты, создать базовое приложение, добавить функционал и стилизовать его. Это только начало, и возможности Flask безграничны. Вы можете добавлять аутентификацию, использовать API, интегрировать сторонние библиотеки и многое другое.
Не бойтесь экспериментировать и расширять функционал вашего приложения. Чем больше вы будете практиковаться, тем лучше у вас будет получаться. Удачи в ваших начинаниях, и до новых встреч!