Maison développement back-end Tutoriel Python Introduction à l'utilisation de flask_migrate et flask_script en python (avec code)

Introduction à l'utilisation de flask_migrate et flask_script en python (avec code)

Nov 15, 2018 pm 03:01 PM
mysql python windows

Cet article vous apporte une introduction à l'utilisation de flask_migrate et flask_script en python (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

flask_migrate

Lors de l'utilisation de falsk_sqlalchemy, l'utilisation de 'db.create_all' ne sera pas automatiquement mappée à la base de données lors de la modification ultérieure des champs de la table de base de données et doit être supprimée.

puis réexécutez 'db.create_all' sera remappé. Cela ne répond pas à nos exigences, donc flask-migrate doit résoudre
ce problème. Il peut mapper les champs modifiés à la base de données après chaque modification du modèle (classe)

from flask_sqlalchemy import SQLAlchemy
from flask import Flask
import pymysql
from sqlalchemy import desc
from flask_bootstrap import Bootstrap


app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:sheen@localhost/migrate_sql'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
app.config['SECRET_KEY'] = 'SHEEN'
bootstrap = Bootstrap(app)

class User(db.Model):
    id = db.Column(db.INTEGER,autoincrement=True,primary_key=True)
    # 用户名唯一且不能为空
    name = db.Column(db.String(30),unique=True,nullable=False)
    # 测试:添加gender属性
    gender = db.Column(db.BOOLEAN,default=True)
    todos = db.relationship('Todo',backref='user')

class Todo(db.Model):
    id = db.Column(db.INTEGER, autoincrement=True, primary_key=True)
    # unique: 指定该列信息是唯一的;
    name = db.Column(db.String(50))
    user_id = db.Column(db.INTEGER,db.ForeignKey('user.id'))
if __name__ == '__main__':
    db.create_all()
Copier après la connexion

Lorsque les tables de base de données user et todo ont été générées et que les tables contiennent des données. À l'heure actuelle, nous devons ajouter des attributs (sexe de l'utilisateur) à la table de la base de données sans affecter l'utilisation de l'utilisateur. Nous utilisons la migration de la base de données pour la gérer et ajoutons le code pour générer les attributs dans le modèle de fichier d'opération de base de données d'origine

 # 测试:添加gender属性
    gender = db.Column(db.BOOLEAN,default=True)
Copier après la connexion

migrer les attributs principaux

Créer un entrepôt de migration (répertoire des migrations)

python manager.py  db init
Copier après la connexion

Lire le contenu de la classe et générer le fichier de version, qui n'est pas actuellement dans la base de données Ajouter ou supprimer ;

python manager.py  db migrate -m "添加性别"
Copier après la connexion

a été supprimé dans la base de données

python manager.py  db upgrade
Copier après la connexion

pour afficher l'état historique des modifications ; renvoie l'état de la version spécifié ;

python manager.py  db history
Copier après la connexion

python manager.py  db downgrade  base
Copier après la connexion

Introduction à lutilisation de flask_migrate et flask_script en python (avec code)Gérer les modifications de la base de données

Créer un nouveau fichier manage.py pour gérer les modifications de la base de données

Étapes :

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from models import app,db
migrate = Migrate(app,db)
manager = Manager(app)
manager.add_command('db',MigrateCommand)

if __name__ == '__main__':
    manager.run()
Copier après la connexion

flask_script
1. 初始化(自动生成migrations目录)
python manager.py db init

2. 生成最初的迁移
python manager.py db migrate -m '添加用户性别'
出现语句:Detected added column 'user.gender',表明对model有所改动

3.数据库升级
python manager.py db upgrade
生成数据库历史版本的py文件:Running upgrade  -> 202a710ebeb6, '添加用户性别'
Copier après la connexion

L'extension Flask Script fournit la fonction d'insérer des scripts externes dans Flask, créant ainsi le script et système séparé

Cadre global

Tout d'abord, créez un modèle Python pour exécuter le script de commande, qui peut être nommé script.pyDans ce fichier, il y a doit être une instance Manager et la classe Manager suit toutes les commandes sur la ligne de commande. La commande appelée et l'état de l'opération d'appel du processus de traitement

Manager n'a qu'un seul paramètre - Instance Flask



Créer une commande
from flask_script import Command,Manager
from flask import Flask

app = Flask(__name__)

manager = Manager(app)
if __name__ == '__main__':
    manager.run()
Copier après la connexion

Deuxièmement, créez et rejoignez la commande. Il existe trois façons de créer une commande, à savoir créer une sous-classe Command, en utilisant le modificateur @command et en utilisant le modificateur @option

La première façon - créer une sous-classe Command
La sous-classe doit définir une La méthode run

crée la commande Hello et ajoute la commande Hello à l'instance Manager



La deuxième méthode - en utilisant le modificateur @command de l'instance Command

class  Hello(Command):
    """欢迎信息"""
    def run(self):
        print('hello,sheen')

manager.add_command('hello',Hello)
Copier après la connexion

La troisième méthode ——Utilisez le modificateur @option de l'instance de commande

Il est recommandé d'utiliser @option;, vous pouvez transmettre plusieurs paramètres
@manager.command
def add_user():
    """添加用户信息"""

    print('添加用户成功')
Copier après la connexion


Exemple complet
@manager.option('-n','--name',help='删除用户')
def del_user(name):
    """删除用户信息"""

    if name:
        print('删除用户%s成功' %(name))
    else:
        print('用户名为空!')
Copier après la connexion

# script.py
from flask_script import Command,Manager
from flask import Flask

app = Flask(__name__)

manager = Manager(app)

class  Hello(Command):
    """欢迎信息"""
    def run(self):
        print('hello,sheen')

manager.add_command('hello',Hello)

@manager.command
def add_user():
    """添加用户信息"""

    print('添加用户成功')

@manager.option('-n','--name',help='删除用户')
def del_user(name):
    """删除用户信息"""

    if name:
        print('删除用户%s成功' %(name))
    else:
        print('用户名为空!')
if __name__ == '__main__':
    manager.run()
Copier après la connexion

Introduction à lutilisation de flask_migrate et flask_script en python (avec code)

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois 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)

VScode ne peut pas installer l'extension VScode ne peut pas installer l'extension Apr 15, 2025 pm 07:18 PM

Les raisons de l'installation des extensions de code vs peuvent être: l'instabilité du réseau, les autorisations insuffisantes, les problèmes de compatibilité système, la version de code vs est trop ancienne, un logiciel antivirus ou des interférences de pare-feu. En vérifiant les connexions réseau, les autorisations, les fichiers journaux, la mise à jour vs du code, la désactivation des logiciels de sécurité et le redémarrage du code ou des ordinateurs, vous pouvez progressivement dépanner et résoudre les problèmes.

Comment exécuter des programmes dans Terminal Vscode Comment exécuter des programmes dans Terminal Vscode Apr 15, 2025 pm 06:42 PM

Dans VS Code, vous pouvez exécuter le programme dans le terminal via les étapes suivantes: Préparez le code et ouvrez le terminal intégré pour vous assurer que le répertoire de code est cohérent avec le répertoire de travail du terminal. Sélectionnez la commande Run en fonction du langage de programmation (tel que Python de Python your_file_name.py) pour vérifier s'il s'exécute avec succès et résoudre les erreurs. Utilisez le débogueur pour améliorer l'efficacité du débogage.

Qu'est-ce que VScode pour quoi est VScode? Qu'est-ce que VScode pour quoi est VScode? Apr 15, 2025 pm 06:45 PM

VS Code est le code Visual Studio Nom complet, qui est un éditeur de code multiplateforme gratuit et open source et un environnement de développement développé par Microsoft. Il prend en charge un large éventail de langages de programmation et fournit une mise en surbrillance de syntaxe, une complétion automatique du code, des extraits de code et des invites intelligentes pour améliorer l'efficacité de développement. Grâce à un écosystème d'extension riche, les utilisateurs peuvent ajouter des extensions à des besoins et des langues spécifiques, tels que les débogueurs, les outils de mise en forme de code et les intégrations GIT. VS Code comprend également un débogueur intuitif qui aide à trouver et à résoudre rapidement les bogues dans votre code.

Peut-il être utilisé sur mac Peut-il être utilisé sur mac Apr 15, 2025 pm 07:45 PM

VS Code fonctionne bien sur MacOS et peut améliorer l'efficacité du développement. Les étapes d'installation et de configuration comprennent: l'installation vs du code et la configuration. Installez des extensions spécifiques à la langue (comme Eslint pour JavaScript). Installez soigneusement les extensions pour éviter un ralentissement excessif de démarrage. Apprenez des fonctionnalités de base telles que l'intégration GIT, le terminal et le débogueur. Définissez le thème et les polices de code appropriées. Remarque Problèmes potentiels: compatibilité prolongée, autorisation de fichier, etc.

L'extension VScode est-elle malveillante? L'extension VScode est-elle malveillante? Apr 15, 2025 pm 07:57 PM

Les extensions de code vs posent des risques malveillants, tels que la cachette de code malveillant, l'exploitation des vulnérabilités et la masturbation comme des extensions légitimes. Les méthodes pour identifier les extensions malveillantes comprennent: la vérification des éditeurs, la lecture des commentaires, la vérification du code et l'installation avec prudence. Les mesures de sécurité comprennent également: la sensibilisation à la sécurité, les bonnes habitudes, les mises à jour régulières et les logiciels antivirus.

Python: automatisation, script et gestion des tâches Python: automatisation, script et gestion des tâches Apr 16, 2025 am 12:14 AM

Python excelle dans l'automatisation, les scripts et la gestion des tâches. 1) Automatisation: La sauvegarde du fichier est réalisée via des bibliothèques standard telles que le système d'exploitation et la fermeture. 2) Écriture de script: utilisez la bibliothèque PSUTIL pour surveiller les ressources système. 3) Gestion des tâches: utilisez la bibliothèque de planification pour planifier les tâches. La facilité d'utilisation de Python et la prise en charge de la bibliothèque riche en font l'outil préféré dans ces domaines.

Quelle langue VScode est utilisée Quelle langue VScode est utilisée Apr 15, 2025 pm 11:03 PM

Visual Studio Code (VSCOD) est développé par Microsoft, construit à l'aide du cadre Electron, et est principalement écrit en JavaScript. Il prend en charge un large éventail de langages de programmation, notamment JavaScript, Python, C, Java, HTML, CSS, etc., et peut ajouter une prise en charge d'autres langues à travers des extensions.

Ce qui se passe avec vscode qui ne fonctionne pas python Ce qui se passe avec vscode qui ne fonctionne pas python Apr 15, 2025 pm 06:00 PM

Le problème "ne peut pas exécuter Python" le plus courant découle de la mauvaise configuration du chemin de l'interprète Python. Les solutions incluent: la confirmation de l'installation de Python, la configuration du code vs et l'utilisation d'un environnement virtuel. De plus, il existe des techniques de débogage efficaces et des meilleures pratiques telles que le débogage des points d'arrêt, la surveillance des variables, la sortie du journal et la mise en forme du code, tels que l'isolement des dépendances à l'aide d'environnements virtuels, le suivi de l'exécution du code en utilisant des points d'arrêt et le suivi des changements variables en temps réel à l'aide d'expressions de surveillance, etc., ce qui peut améliorer considérablement l'efficacité du développement.

See all articles