SQLite в реальных проектах: Python, мобильная и веб-разработка | Урок 11

SQLite в реальных проектах: Python, мобильная и веб-разработка | Урок 11 SQLite

SQLite – это легковесная, встроенная база данных, которая идеально подходит для разработки приложений, требующих локального хранения данных. Благодаря своей простоте и эффективности, SQLite широко используется в различных реальных проектах, от настольных приложений до мобильных и веб-приложений. В этой статье мы рассмотрим, как интегрировать SQLite в проекты на Python, в мобильной разработке и веб-разработке, предоставив пошаговые руководства и примеры.

Предыдущий урок: Триггеры и представления в SQLite

Следующий урок: Продвинутые техники SQLite: работа с большими данными и безопасность (Урок 12)

Интеграция SQLite с Python

Обзор использования SQLite в Python

Python – это мощный язык программирования, который идеально подходит для работы с базами данных благодаря своим обширным библиотекам и простоте использования. SQLite отлично интегрируется с Python, позволяя разработчикам легко создавать и управлять базами данных.

Установка библиотеки SQLite для Python

Для работы с SQLite в Python используется встроенная библиотека sqlite3. Она входит в стандартную библиотеку Python, поэтому дополнительная установка не требуется. Однако, для работы с более сложными задачами, вы можете установить библиотеку SQLAlchemy, которая предоставляет ORM (Object-Relational Mapping) для удобной работы с базами данных.

pip install sqlalchemy

Пример создания и подключения к базе данных SQLite в Python

Давайте создадим простую базу данных и подключимся к ней с помощью Python.

import sqlite3

# Создание или подключение к базе данных
conn = sqlite3.connect('example.db')

# Создание курсора для выполнения SQL-запросов
cursor = conn.cursor()

# Создание таблицы
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER NOT NULL
)
''')

# Сохранение изменений и закрытие соединения
conn.commit()
conn.close()

Примеры выполнения CRUD операций в Python

Вставка данных:

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Вставка данных
cursor.execute('''
INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))

conn.commit()
conn.close()

Выборка данных:

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Выборка данных
cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()

for row in rows:
    print(row)

conn.close()

Обновление данных:

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Обновление данных
cursor.execute('''
UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

conn.commit()
conn.close()

Удаление данных:

conn = sqlite3.connect('example.db')
cursor = conn.cursor()

# Удаление данных
cursor.execute('''
DELETE FROM users WHERE name = ?
''', ('Alice',))

conn.commit()
conn.close()

Использование SQLite в мобильной разработке

Преимущества использования SQLite в мобильных приложениях

SQLite является отличным выбором для мобильных приложений благодаря своей легковесности и встроенной поддержке в Android и iOS. Он позволяет сохранять данные локально на устройстве, обеспечивая быстрый доступ и надежность.

Пошаговое руководство по использованию SQLite в Android-приложениях

Установка и настройка SQLite в Android Studio

  1. Создайте новый проект в Android Studio.
  2. Добавьте зависимости SQLite в файл build.gradle:
implementation 'androidx.sqlite:sqlite:2.1.0'

Пример создания базы данных и таблиц в Android

Создайте класс, наследующий SQLiteOpenHelper, для управления базой данных.

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "example.db";
    private static final int DATABASE_VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS users");
        onCreate(db);
    }
}

Примеры выполнения CRUD операций в Android

Вставка данных:

DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("name", "Alice");
values.put("age", 30);

db.insert("users", null, values);
db.close();

Выборка данных:

DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getReadableDatabase();

Cursor cursor = db.query("users", null, null, null, null, null, null);
while (cursor.moveToNext()) {
    int id = cursor.getInt(cursor.getColumnIndex("id"));
    String name = cursor.getString(cursor.getColumnIndex("name"));
    int age = cursor.getInt(cursor.getColumnIndex("age"));
    // Используйте данные
}
cursor.close();
db.close();

Обновление данных:

DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();

ContentValues values = new ContentValues();
values.put("age", 31);

db.update("users", values, "name = ?", new String[]{"Alice"});
db.close();

Удаление данных:

DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();

db.delete("users", "name = ?", new String[]{"Alice"});
db.close();

Обзор использования SQLite в iOS-приложениях

Для использования SQLite в iOS-приложениях можно использовать встроенную библиотеку SQLite или сторонние библиотеки, такие как FMDB.

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

  1. Установите FMDB с помощью CocoaPods:
pod 'FMDB'
  1. Создайте и подключитесь к базе данных:
import FMDB

let database = FMDatabase(path: "path/to/database.sqlite")

if database.open() {
    do {
        try database.executeUpdate("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)", values: nil)
    } catch {
        print("Failed to create table: \(error.localizedDescription)")
    }
    database.close()
}

Применение SQLite в веб-разработке

Преимущества использования SQLite в веб-приложениях

SQLite идеально подходит для небольших веб-приложений и прототипов благодаря своей простоте и отсутствию необходимости в серверной установке. Он позволяет быстро и эффективно управлять локальными базами данных.

Примеры использования SQLite в различных фреймворках

Интеграция SQLite в Django

  1. Создайте новый проект Django:
django-admin startproject myproject
  1. Настройте базу данных в settings.py:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / "db.sqlite3",
    }
}
  1. Создайте модель и примените миграции:
# models.py
from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
python manage.py makemigrations
python manage.py migrate
  1. Работа с данными через Django ORM:
# views.py
from .models import User

# Вставка данных
user = User(name="Alice", age=30)
user.save()

# Выборка данных
users = User.objects.all()
for user in users:
    print(user.name, user.age)

# Обновление данных
user = User.objects.get(name="Alice")
user.age = 31
user.save()

# Удаление данных
user = User.objects.get(name="Alice")
user.delete()

Интеграция SQLite в Flask

  1. Создайте новый проект Flask:
mkdir myproject
cd myproject
python -m venv venv
source venv/bin/activate
pip install flask
  1. Настройте базу данных в app.py:
from flask import Flask, request, g
import sqlite3

app = Flask(__name__)
DATABASE = 'example.db'

def get_db():
    db = getattr(g, '_database', None)
    if db is None:
        db = g._database = sqlite3.connect(DATABASE)
    return db

@app.teardown_appcontext
def close_connection(exception):
    db = getattr(g, '_database', None)
    if db is not None:
        db.close()

@app.route('/create')
def create_table():
    db = get_db()
    db.execute('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
    db.commit()
    return "Table created!"

@app.route('/add', methods=['POST'])
def add_user():
    db = get_db()
    db.execute('INSERT INTO users (name, age) VALUES (?, ?)', [request.form['name'], request.form['age']])
    db.commit()
    return "User added!"

@app.route('/users')
def get_users():
    db = get_db()
    cur = db.execute('SELECT * FROM users')
    users = cur.fetchall()
    return str(users)

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

Примеры выполнения CRUD операций в веб-приложениях

Вставка данных:

@app.route('/add', methods=['POST'])
def add_user():
    db = get_db()
    db.execute('INSERT INTO users (name, age) VALUES (?, ?)', [request.form['name'], request.form['age']])
    db.commit()
    return "User added!"

Выборка данных:

@app.route('/users')
def get_users():
    db = get_db()
    cur = db.execute('SELECT * FROM users')
    users = cur.fetchall()
    return str(users)

Обновление данных:

@app.route('/update', methods=['POST'])
def update_user():
    db = get_db()
    db.execute('UPDATE users SET age = ? WHERE name = ?', [request.form['age'], request.form['name']])
    db.commit()
    return "User updated!"

Удаление данных:

@app.route('/delete', methods=['POST'])
def delete_user():
    db = get_db()
    db.execute('DELETE FROM users WHERE name = ?', [request.form['name']])
    db.commit()
    return "User deleted!"

Заключение

SQLite – это мощный инструмент для разработки приложений, требующих локального хранения данных. В этой статье мы рассмотрели, как интегрировать SQLite в проекты на Python, использовать его в мобильной разработке и веб-приложениях. Мы предоставили пошаговые руководства и примеры выполнения CRUD операций, чтобы помочь вам начать работу с SQLite в реальных проектах.

Итоги и перспективы развития

Подведем итоги изученного материала:

  • Мы узнали, как установить и настроить SQLite для различных платформ.
  • Рассмотрели примеры интеграции SQLite с Python, Android и веб-фреймворками.
  • Освоили базовые операции с данными (CRUD) в различных средах.

Советы по дальнейшему изучению и использованию SQLite

  1. Изучайте официальную документацию SQLite и используемых библиотек.
  2. Практикуйтесь, создавая небольшие проекты с использованием SQLite.
  3. Изучите продвинутые техники работы с SQLite, такие как индексы, транзакции и триггеры.
Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x