[PYTHON] Créer une application Web avec Flask ②

Gérer la base de données

Cette fois, tout d'abord, configurez la base de données pour qu'elle puisse être utilisée. Afin de publier et de parcourir des articles, il est nécessaire d'enregistrer les données de l'article afin que les données puissent être récupérées si nécessaire. L'endroit où les données d'article sont stockées est la base de données, qui traite le système pour stocker et récupérer efficacement les données de la base de données. SQLAlchemy SQLAlchamy est une bibliothèque qui facilite le travail avec des bases de données dans Flask.

Initialisation de SQL Alchemy

Définissez comme suit dans config.py. Cette fois, nous utiliserons une base de données appelée SQLite.

python:./cafesite/config.py


SQLALCHEMY_DATABASE_URI = 'sqlite:///cafe_site.db'
SQLALCHEMY_TRACK_MODIFICATIONS = True
DEBUG = True
SECRET_KEY = 'secret key'
USERNAME = 'john'
PASSWORD = 'abc123'

Modifiez également ** __ init__.py **.

python:./cafesite/config.py


from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config.from_object('cafe_site.config')

db = SQLAlchemy(app)

import cafe_site.views

Vous pouvez gérer la base de données à partir de la variable db en installant la bibliothèque SQLAlchemy et en écrivant db = SQLAlchemy (app).

Création d'un modèle (modèle dans MTV)

Ensuite, définissez le modèle de la base de données. Les articles ont besoin de trois attributs: le titre, le corps et la date et l'heure de publication. Nous définirons ces attributs dans le modèle de base de données.

Définition du modèle

Créons maintenant un modèle pour l'article. Créez un dossier ** models ** sous le dossier ** cafe_site ** et créez-y un fichier ** reviews.py **.

python:./cafesite/models/reviews.py


from cafe_site import db
from datetime import datetime

class Review(db.Model):
    __tablename__ = 'Reviews'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(50), unique=True)
    text = db.Column(db.Text)
    created_at = db.Column(db.DateTime)

    def __init__(self, title=None, text=None):
        self.title = title
        self.text = text
        self.created_at = datetime.utcnow()

    def __repr__(self):
        return '<Review id:{} title:{} text:{}>'.format(self.id, self.title, self.text)

class Review (db.Model): définit le modèle et __tablename__ = 'Reviews' nomme les tables stockées dans la base de données.

Définition d'attribut

python:./cafesite/models/reviews.py


    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(50), unique=True)
    text = db.Column(db.Text)
    created_at = db.Column(db.DateTime)

Lors de la récupération des données, utilisez la ** clé_principale ** ʻid. L'attribut * id * est un attribut important qui est toujours requis lors de la définition d'un modèle. Les attributs sont définis selon les règles à partir de la deuxième ligne. ʻUnique = True est un processus pour empêcher la duplication.

Traitement après la création du modèle

def __init __ (self, title = None, text = None): définit le comportement standard lors de la création d'un modèle.

python:./cafesite/models/reviews.py


def __init__(self, title=None, text=None):
        self.title = title
        self.text = text
        self.created_at = datetime.utcnow()

Avec cette définition, les données d'article seront créées avec le titre et le contenu spécifiés et l'heure actuelle comme date et heure de publication en écrivant comme suit à l'avenir.

Review(title="Le titre de l'article", text="Contenu de l'article")

Définir le format d'affichage une fois référencé

python:./cafesite/models/reviews.py


def __repr__(self):
        return '<Review id:{} title:{} text:{}>'.format(self.id, self.title, self.text)

Ici, ** id **, ** titre ** et ** texte ** sont affichés sur la console.

Créer un script qui vous permet d'utiliser des processus fixes en commun

Créez un dossier ** scripts ** sous cafe_site et créez-y un fichier ** db.py **.

python:./cafe_site/scripts/db.py


from flask_script import Command
from cafe_site import db

class InitDB(Command):
    "create database"

    def run(self):
        db.create_all()

Définissez une classe avec class InitDB (Command):. En définissant (Command), il est défini comme une classe pour exécuter des scripts. " createdatabse " est un commentaire pour décrire la classe.

def run (self): est ce qui est réellement exécuté par le script. La définition du modèle est reflétée dans la base de données en définissant db.create_all () comme contenu d'exécution.

Créer manage.py

Ensuite, enregistrez le scripts.py créé afin qu'il puisse être exécuté sur la console. Créez un fichier nommé manage.py directement sous le répertoire racine.

python:./manage.py


from flask_script import Manager
from cafe_site import app
from cafe_site.scripts.db import InitDB


if __name__ == "__main__":
    manager = Manager(app)
    manager.add_command('init_db', InitDB())
    manager.run()

Le fichier de script est enregistré avec ʻif__name __ == "__ main__": . En définissant manager.add_command ('init_db', InitDB ())`, le module InitDB () créé peut être exécuté avec le nom init_db.

console


python manage.py init_db

Après exécution, un fichier ** cafe_site.db ** sera créé sous le dossier ** cafe_site **.

La suite sera expliquée dans Créer une application web avec Flask ③.

Recommended Posts

Créer une application Web avec Flask ②
Créer une application Web avec Flask ①
Créer une application Web avec Flask ③
Créer une application Web avec Flask ④
Créer une application Web pour la transcription vocale
Essayez d'utiliser le framework d'application Web Flask
Création d'une application d'analyse de données à l'aide de Streamlit
Application Web utilisant Bottle (1)
Création d'une application interactive à l'aide d'un modèle de rubrique
[GCP] Procédure de création d'une application Web avec Cloud Functions (Python + Flask)
Je souhaite créer une application Web en utilisant React et Python flask
Développement d'applications WEB à l'aide de django-development partie 1-
Développement d'applications Web avec Flask
Application Web avec Python + Flask ② ③
Application Web avec Python + Flask ④
(Python) Essayez de développer une application Web en utilisant Django
Développement d'une application WEB avec Django [Django startup]
Développement d'une application WEB avec Django [Ajout d'application]
Créer un serveur Flask avec Docker
Créer un tableau simple à l'aide de prettytable
Créer une application Web avec Django
Créer un modèle d'apprentissage à l'aide de MNIST
Faisons une application WEB pour l'annuaire téléphonique avec flacon Partie 1
Application Web réalisée avec Python + Flask (en utilisant VScode) # 1-Construction d'environnement virtuel-
Python: Introduction à Flask: création d'une application d'identification de numéro à l'aide de MNIST
Créer une application Web de type Flask / Bottle sur AWS Lambda avec Chalice
Faisons une application WEB pour l'annuaire téléphonique avec flacon Partie 2
Faisons une application WEB pour l'annuaire téléphonique avec flacon Partie 3
Faisons une application WEB pour l'annuaire téléphonique avec flacon Partie 4
Développement d'une application WEB avec Django [Définition de modèle]
Développement d'une application WEB avec Django [Paramètre initial]
Développement d'applications WEB à l'aide de django-Construction d'environnement de développement-
Afficher les diagrammes matplotlib dans une application Web
Impressions d'utilisation de Flask pendant un mois
Développement d'une application WEB avec Django [Traitement des requêtes]
Développement d'une application WEB avec Django [modèle supplémentaire]
[Python] Une application web rapide avec Bottle!
Créez une application Web simple avec Flask
Exécutez une application Web Python avec Docker
Créer un service Web avec Docker + Flask
J'ai essayé de comparer le cadre d'application Web
J'ai fait une application WEB avec Django
Créez rapidement un environnement d'exécution d'application Web Python3.4 + Nginx + uWSGI + Flask en utilisant pyenv sur Ubuntu 12.04
Paramètres de l'application Flask
Démarrez un serveur Web en utilisant Bottle et Flask (j'ai également essayé d'utiliser Apache)
Implémentez une application simple avec Python full scratch sans utiliser de framework web.
[Python] Fractionner un gros fichier Flask en utilisant Blueprint
Développement d'une application WEB avec Django [Création de l'écran d'administration]
Créer une carte Web en utilisant Python et GDAL
Étapes pour développer une application Web en Python
Lancer un serveur Web avec Python et Flask
Ce à quoi j'étais accro lors de la création d'applications Web dans un environnement Windows
Les débutants ont essayé de créer une application Web native pour le cloud à l'aide de Datastore / GAE
Créez une application Web qui convertit le PDF en texte à l'aide de Flask et PyPDF2
Essayez de créer une application Web avec Vue.js et Django (édition Mac) - (1) Construction d'environnement, création d'application
Créez rapidement un environnement d'exécution d'application Web Python3.4 + Nginx + uWSGI + Flask en utilisant venv sur Ubuntu 14.04 LTS