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.
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)
.
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.
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.
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.
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")
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é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.
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