Heim  >  Artikel  >  Backend-Entwicklung  >  ORM-Framework Flask-SQLAlchemy in Python in der Praxis

ORM-Framework Flask-SQLAlchemy in Python in der Praxis

WBOY
WBOYOriginal
2023-06-10 22:57:051836Durchsuche

ORM (Object-Relational Mapping) ist eine Programmiertechnologie, die Tabellendaten in einer relationalen Datenbank Objekten in einer Programmiersprache zuordnet und es Programmentwicklern ermöglicht, die Datenbank objektorientiert zu betreiben. Flask-SQLAlchemy ist ein leistungsstarkes ORM-Framework, das den Betrieb von Python-Programmen auf relationalen Datenbanken erheblich vereinfachen kann.

In diesem Artikel wird die Verwendung des Flask-SQLAlchemy-Frameworks anhand eines Beispiels detailliert vorgestellt.

  1. Umgebungskonfiguration

Bevor wir Flask-SQLAlchemy lernen, müssen wir zuerst die Module Flask und SQLAlchemy installieren. Sie können es mit dem Befehl pip in der Python-Umgebung installieren.

pip install Flask
pip install SQLAlchemy

  1. Datenbankkonfiguration

Konfigurieren Sie die MySQL-Datenbank als dauerhaften Speicher des Projekts, übergeben Sie einfach die folgenden Parameter:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

Erster Parameter: Flask-Anwendungsinstanz

Zweiter Parameter: Datenbankverbindungs-URI

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:password@ localhost: 3306/test'

Deaktivieren Sie die Option SQLALCHEMY_TRACK_MODIFICATIONS, um die Effizienz der Programmausführung zu verbessern

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

Initialisieren Sie das Datenbankobjekt

db = SQLAlchemy(app)

Rufen Sie zum Festlegen app.config auf up Flask-Konfigurationsparameter der Anwendungsinstanz, unter denen der Parameter SQLALCHEMY_DATABASE_URI verwendet wird, um den Typ der verbundenen Datenbank, den Benutzernamen, das Passwort, die IP-Adresse, die Portnummer, den Datenbanknamen und andere Informationen anzugeben.

  1. ORM-Implementierung

Definieren Sie das Datenmodell

Zuerst müssen wir das Datenmodell definieren, bei dem es sich um das ORM-Zuordnungsobjekt handelt. Hier nehmen wir Schülerinformationen als Beispiel, um eine Schülerklasse zu definieren:

aus Datum/Uhrzeit-Import datetime
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

SQLAlchemy ORM-Designmodell

class Student(db.Model):

# 定义表名
__tablename__ = 'student'
# 定义表结构,其中id为主键,自增长
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(20), nullable=False)
gender = db.Column(db.String(2), nullable=False)
birthday = db.Column(db.Date, default=datetime.now())
address = db.Column(db.String(200), nullable=False)

# 类对象序列化成字典
def to_dict(self):
    return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}

In der Student-Klasse definieren wir die Tabellenstrukturen von __tablename__, id, name, gender , Geburtstag, Adresse . Unter diesen wird __tablename__ verwendet, um den Tabellennamen anzugeben, id wird verwendet, um den Primärschlüssel anzugeben und automatisch zu wachsen, und die Felder Name, Geschlecht, Geburtstag und Adresse werden zum Speichern von Informationen über den Namen, das Geschlecht, den Geburtstag usw. des Schülers verwendet Adresse.

Vorgänge zum Hinzufügen, Löschen, Ändern und Abfragen

Als nächstes implementieren wir die Vorgänge zum Hinzufügen, Löschen, Ändern und Abfragen:

(1) Schülerinformationen hinzufügen

@app.route('/add', method=[' POST'])
def add_student( ):

student = Student()
student.name = request.form.get('name')
student.gender = request.form.get('gender')
student.birthday = datetime.strptime(request.form.get('birthday'), '%Y-%m-%d').date()
student.address = request.form.get('address')
db.session.add(student)
db.session.commit()
return jsonify({'code': 200, 'msg': 'add student success.'})

Erstens die übermittelten Formulardaten über request.form.get() abrufen, dann das Student-Objekt erstellen und den Eigenschaftswert festlegen und schließlich das Objekt über db zur Datenbank hinzufügen. session.add() und übergeben Sie db.session(), um die Transaktion festzuschreiben.

(2) Schülerinformationen löschen

@app.route('/delete/3e2f7d559aac0f0aeba61111f4764f61', method=['DELETE'])
def delete_student(id):

student = Student.query.get(id)
if student:
    db.session.delete(student)
    db.session.commit()
    return jsonify({'code': 200, 'msg': 'delete student success.'})
else:
    return jsonify({'code': 404, 'msg': 'student not found.'})

Übergeben Sie den Studenten-ID-Parameter , Rufen Sie die Studenteninstanz über die Methode query.get() ab, löschen Sie sie mit der Methode db.session.delete() aus der Datenbank und senden Sie die Transaktion über db.session.commit().

(3) Schülerinformationen ändern

@app.route('/update/3e2f7d559aac0f0aeba61111f4764f61', models=['PUT'])
def update_student(id):

student = Student.query.get(id)
if student:
    student.name = request.form.get('name')
    student.gender = request.form.get('gender')
    student.birthday = datetime.strptime(request.form.get('birthday'), '%Y-%m-%d').date()
    student.address = request.form.get('address')
    db.session.commit()
    return jsonify({'code': 200, 'msg': 'update student success.'})
else:
    return jsonify({'code': 404, 'msg': 'student not found.'})

Auch basierend auf dem Schüler ID-Parameter Rufen Sie die Studenteninstanz ab und verwenden Sie nach dem Ändern der Studenteninformationen db.session.commit(), um die Transaktion zu übermitteln.

(4) Schülerinformationen abfragen

@app.route('/search')
def search_student():

students = Student.query.all()
if students:
    return jsonify({'code': 200, 'msg': 'search student success.', 'data': [student.to_dict() for student in students]})
else:
    return jsonify({'code': 404, 'msg': 'student not found.'})

Verwenden Sie die Methode query.all(), um alle Schülerinformationen in der Schülertabelle abzufragen, und nutzen Sie das Listenverständnis Konvertieren Sie die Liste der Schülerobjekte in eine Wörterbuchliste und geben Sie sie zurück.

  1. Zusammenfassung

Flask-SQLAlchemy ist ein sehr leistungsfähiges ORM-Framework, das das Schreiben von Datenbankoperationscodes in Python einfacher und leichter lesbar machen kann. Dieser Artikel bietet anhand eines Beispiels eine ausführliche Einführung in die Verwendung von Flask-SQLAlchemy.

In der tatsächlichen Entwicklung können wir das Datenmodell definieren und Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge auf ähnliche Weise wie in diesem Artikel implementieren. Die Komplexität dieser Vorgänge ist sehr gering. Durch die Verwendung des Flask-SQLAlchemy-Frameworks können wir die Entwicklungseffizienz verbessern und die Programmwartungskosten senken.

Das obige ist der detaillierte Inhalt vonORM-Framework Flask-SQLAlchemy in Python in der Praxis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn