Flask i SQLAlchemy

https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/_static/flask-sqlalchemy-logo.png
https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/

Każda kolumna w tabeli ma określony typ danych, na przykład tekstowy, liczbowy lub datowy. Typ danych określa, jakie rodzaje danych można przechowywać w danej kolumnie.

Bazy danych SQL składają się z trzech podstawowych elementów:

  1. Tabele – to struktury przechowujące dane w postaci wierszy i kolumn. Każda tabela ma unikalną nazwę i składa się z jednego lub wielu kolumn.
  2. Kolumny – każda kolumna ma swoją nazwę oraz określony typ danych, który określa rodzaj danych, które można przechowywać w tej kolumnie.
  3. Wiersze – to pojedyncze rekordy w tabeli, które składają się z danych przechowywanych w każdej z kolumn. Każdy wiersz ma unikalny identyfikator (klucz główny), który służy do identyfikowania go w bazie danych.

Bazy danych SQL umożliwiają manipulowanie danymi za pomocą języka SQL, który umożliwia wykonywanie operacji takich jak tworzenie, aktualizowanie i usuwanie danych z tabel.” Koniec cytatu z inteligencji;)

KOD

Poniżej kod, który pokazuje istotę działania biblioteki SQLAlchemy. Tworzymy bazę, kreujemy klasę, która buduje strukturę bazy. Potem

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

# create the extension
db = SQLAlchemy()
# create the app
app = Flask(__name__)
# configure the SQLite database, relative to the app instance folder
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///db2.sqlite3"
# initialize the app with the extension
# db.init_app(app)

db = SQLAlchemy(app)


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

    def __repr__(self):
        return '<User %r>' % self.username


app.app_context().push()

# with app.app_context():
#     db.create_all()

# DODAWANIE REKORDÓW DO BAZY
user1 = User(username="Pirra", email="pirra@com.pl")
user2 = User(username="Chomek", email="chomek@com.pl")

with app.app_context():
    db.session.add(user1)
    db.session.add(user2)
    db.session.commit()

# #  SZUKANIE REKORDÓW W BAZIE
# with app.app_context():
#     db.session.add(user1)
#
# app.app_context().push()
# for user in User.query.all():
#     print(user.id, user.username, user.email)
#
# print(User.query.count())
# print(f"filter: {User.query.filter_by(username='Pirra').all()}")

# #   SZUKANIE W BAZIE REKORDÓW I ZASTĘPOWANIE WARTOŚCI NOWYMI
# app.app_context().push()
# wirta = User.query.filter_by(username='Chomek').first()
# print(wirta.id, wirta.username, wirta.email)
# wirta.email = 'stary@wkurw.com'
# db.session.commit()
# wirta = User.query.filter_by(username='Chomek').first()
# print(wirta.id, wirta.username, wirta.email)

# #   USUWANIE REKORDÓW
# dziwek = User.query.filter_by(username='Pirra').one()
# db.session.delete(dziwek)
# db.session.commit()
# print(User.query.all())

# obj = User.query.filter_by(id=2).one()
# db.session.delete(obj)
# db.session.commit()
# print(User.query.all())


Typy danych

Integeran integer
String(size)a string with a maximum length (optional in some databases, e.g. PostgreSQL)
Textsome longer unicode text
DateTimedate and time expressed as Python datetime object.
Floatstores floating point values
Booleanstores a boolean value
PickleTypestores a pickled Python object
LargeBinarystores large arbitrary binary data

Dodaj komentarz