Table des matières
Premier paramètre : instance d'application flask
Deuxième paramètre : URI de connexion à la base de données
Désactivez l'option SQLALCHEMY_TRACK_MODIFICATIONS pour améliorer l'efficacité de l'exécution du programme
Initialisez l'objet de base de données
SQLAlchemy ORM design model
Maison développement back-end Tutoriel Python Framework ORM Flask-SQLAlchemy en Python en pratique

Framework ORM Flask-SQLAlchemy en Python en pratique

Jun 10, 2023 pm 10:57 PM
python orm框架 flask-sqlalchemy

ORM (Object-Relational Mapping) est une technologie de programmation qui mappe les données de table d'une base de données relationnelle à des objets dans un langage de programmation, permettant aux développeurs de programmes d'exploiter la base de données de manière orientée objet. Flask-SQLAlchemy est un framework ORM puissant qui peut grandement simplifier le fonctionnement des programmes Python sur des bases de données relationnelles.

Cet article présentera en détail comment utiliser le framework Flask-SQLAlchemy à travers un exemple.

  1. Configuration de l'environnement

Avant d'apprendre Flask-SQLAlchemy, nous devons d'abord installer les modules Flask et SQLAlchemy. Vous pouvez l'installer à l'aide de la commande pip dans l'environnement Python.

pip install Flask
pip install SQLAlchemy

  1. Configuration de la base de données

Configurez la base de données MySQL comme stockage persistant du projet Lors de la création d'un objet Flask-SQLAlchemy, transmettez simplement les paramètres suivants :

from flask import Flask
. from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

Premier paramètre : instance d'application flask

Deuxième paramètre : URI de connexion à la base de données

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

Désactivez l'option SQLALCHEMY_TRACK_MODIFICATIONS pour améliorer l'efficacité de l'exécution du programme

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

Initialisez l'objet de base de données

db = SQLAlchemy(app)

Appelez app.config pour définir up Flask Paramètres de configuration de l'instance d'application, parmi lesquels le paramètre SQLALCHEMY_DATABASE_URI est utilisé pour spécifier le type de base de données connectée, le nom d'utilisateur, le mot de passe, l'adresse IP, le numéro de port, le nom de la base de données et d'autres informations.

  1. Implémentation ORM

Définir le modèle de données

Tout d'abord, nous devons définir le modèle de données, qui est l'objet de mappage ORM. Ici, nous prenons les informations sur les étudiants comme exemple pour définir une classe Student :

à partir de l'importation datetime. datetime
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

SQLAlchemy ORM design model

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}
Copier après la connexion

Dans la classe Student, nous définissons les structures de table de __tablename__, id, name, Gender , anniversaire, adresse . Parmi eux, __tablename__ est utilisé pour spécifier le nom de la table, id est utilisé pour spécifier la clé primaire et se développe automatiquement, et les champs nom, sexe, anniversaire et adresse sont utilisés pour stocker des informations sur le nom, le sexe, l'anniversaire et l'adresse de l'étudiant. adresse.

Opérations d'ajout, de suppression, de modification et d'interrogation

Ensuite, nous implémentons les opérations d'ajout, de suppression, de modification et d'interrogation :

(1) Ajouter des informations sur l'élève

@app.route('/add', méthodes=[' 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.'})
Copier après la connexion

Récupérez d'abord les données du formulaire soumis via request.form.get(), puis créez l'objet Student et définissez la valeur de la propriété, et enfin ajoutez l'objet à la base de données via db. session.add() et pass db.session commit() valide la transaction.

(2) Supprimer les informations sur l'étudiant

@app.route('/delete/', METHODS=['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.'})
Copier après la connexion

Passez le paramètre d'identification de l'étudiant , Obtenez l'instance d'étudiant via la méthode query.get(), supprimez-la de la base de données à l'aide de la méthode db.session.delete() et soumettez la transaction via db.session.commit().

(3) Modifier les informations sur l'étudiant

@app.route('/update/', METHODS=['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.'})
Copier après la connexion

Également basé sur l'étudiant Paramètre id Obtenez l'instance de l'étudiant et après avoir modifié les informations sur l'étudiant, utilisez db.session.commit() pour soumettre la transaction.

(4) Interroger les informations sur les étudiants

@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.'})
Copier après la connexion

Utilisez la méthode query.all() pour interroger toutes les informations sur les étudiants dans la table Student et utiliser la compréhension de liste Convertissez la liste des objets étudiants en liste de dictionnaire et renvoyez-la.

  1. Résumé

Flask-SQLAlchemy est un framework ORM très puissant qui peut rendre l'écriture de codes d'opération de base de données en Python plus simple et plus facile à lire. Cet article fournit une introduction approfondie à l'utilisation de Flask-SQLAlchemy à travers un exemple.

En développement réel, nous pouvons définir le modèle de données et implémenter les opérations d'ajout, de suppression, de modification et de requête d'une manière similaire à cet article. La complexité de ces opérations est très faible. L'utilisation du framework Flask-SQLAlchemy nous permet d'améliorer l'efficacité du développement et de réduire les coûts de maintenance des programmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: comparaison de deux langages de programmation populaires PHP et Python: comparaison de deux langages de programmation populaires Apr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

Comment Debian Readdir s'intègre à d'autres outils Comment Debian Readdir s'intègre à d'autres outils Apr 13, 2025 am 09:42 AM

La fonction ReadDir dans le système Debian est un appel système utilisé pour lire le contenu des répertoires et est souvent utilisé dans la programmation C. Cet article expliquera comment intégrer ReadDir avec d'autres outils pour améliorer sa fonctionnalité. Méthode 1: combinant d'abord le programme de langue C et le pipeline, écrivez un programme C pour appeler la fonction readdir et sortir le résultat: # include # include # include # includeIntmain (intargc, char * argv []) {dir * dir; structDirent * entrée; if (argc! = 2) {

Comment configurer le serveur HTTPS dans Debian OpenSSL Comment configurer le serveur HTTPS dans Debian OpenSSL Apr 13, 2025 am 11:03 AM

La configuration d'un serveur HTTPS sur un système Debian implique plusieurs étapes, notamment l'installation du logiciel nécessaire, la génération d'un certificat SSL et la configuration d'un serveur Web (tel qu'Apache ou Nginx) pour utiliser un certificat SSL. Voici un guide de base, en supposant que vous utilisez un serveur Apacheweb. 1. Installez d'abord le logiciel nécessaire, assurez-vous que votre système est à jour et installez Apache et OpenSSL: SudoaptupDaSuDoaptupgradeSudoaptinsta

Python et temps: tirer le meilleur parti de votre temps d'étude Python et temps: tirer le meilleur parti de votre temps d'étude Apr 14, 2025 am 12:02 AM

Pour maximiser l'efficacité de l'apprentissage de Python dans un temps limité, vous pouvez utiliser les modules DateTime, Time et Schedule de Python. 1. Le module DateTime est utilisé pour enregistrer et planifier le temps d'apprentissage. 2. Le module de temps aide à définir l'étude et le temps de repos. 3. Le module de planification organise automatiquement des tâches d'apprentissage hebdomadaires.

Guide de développement du plug-in de Gitlab sur Debian Guide de développement du plug-in de Gitlab sur Debian Apr 13, 2025 am 08:24 AM

Développer un plugin Gitlab sur Debian nécessite des étapes et des connaissances spécifiques. Voici un guide de base pour vous aider à démarrer avec ce processus. Installation de GitLab Tout d'abord, vous devez installer GitLab sur votre système Debian. Vous pouvez vous référer au manuel d'installation officiel de Gitlab. Obtenez un jeton d'accès API avant d'effectuer l'intégration de l'API, vous devez d'abord obtenir le jeton d'accès API de GitLab. Ouvrez le tableau de bord GitLab, recherchez l'option "AccessTokens" dans les paramètres utilisateur et générez un nouveau jeton d'accès. Sera généré

Quel service est Apache Quel service est Apache Apr 13, 2025 pm 12:06 PM

Apache est le héros derrière Internet. Ce n'est pas seulement un serveur Web, mais aussi une plate-forme puissante qui prend en charge un trafic énorme et fournit un contenu dynamique. Il offre une flexibilité extrêmement élevée grâce à une conception modulaire, permettant l'expansion de diverses fonctions au besoin. Cependant, la modularité présente également des défis de configuration et de performance qui nécessitent une gestion minutieuse. Apache convient aux scénarios de serveur qui nécessitent des besoins complexes hautement personnalisables.

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Dans quelle langue Apache est-elle écrite? Dans quelle langue Apache est-elle écrite? Apr 13, 2025 pm 12:42 PM

Apache est écrit en C. La langue offre la vitesse, la stabilité, la portabilité et l'accès direct au matériel, ce qui le rend idéal pour le développement du serveur Web.

See all articles