Richten Sie diesmal zunächst die Datenbank so ein, dass sie verwendet werden kann. Um Artikel zu veröffentlichen und zu durchsuchen, müssen die Artikeldaten gespeichert werden, damit die Daten bei Bedarf abgerufen werden können. Der Ort, an dem Artikeldaten gespeichert werden, ist die Datenbank, die das System zum effizienten Speichern und Abrufen von Daten aus der Datenbank verarbeitet. SQLAlchemy SQLAlchamy ist eine Bibliothek, die das Arbeiten mit Datenbanken in Flask vereinfacht.
In config.py wie folgt einstellen. Dieses Mal werden wir eine Datenbank namens SQLite verwenden.
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'
Bearbeiten Sie auch ** __ 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
Sie können die Datenbank von der Variablen db aus verwalten, indem Sie die SQLAlchemy-Bibliothek installieren und "db = SQLAlchemy (app)" schreiben.
Definieren Sie als Nächstes das Modell für die Datenbank. Artikel benötigen drei Attribute: Titel, Text sowie Datum und Uhrzeit der Veröffentlichung. Wir werden solche Attribute im Datenbankmodell definieren.
Erstellen wir nun ein Modell für den Artikel. Erstellen Sie einen Ordner ** models ** unter dem Ordner ** cafe_site ** und erstellen Sie darin eine Datei ** 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):
definiert das Modell und __tabellenname__ = 'Reviews'
benennt die in der Datenbank gespeicherten Tabellen.
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)
Verwenden Sie den ** primary_key ** id
, um die Daten abzurufen.
Das Attribut * id * ist ein wichtiges Attribut, das beim Definieren eines Modells immer erforderlich ist.
Die Attribute werden ab der zweiten Zeile nach den Regeln definiert.
unique = True
ist ein Prozess, um Doppelarbeit zu verhindern.
def __init __ (self, title = None, text = None):
definiert das Standardverhalten beim Erstellen eines Modells.
python:./cafesite/models/reviews.py
def __init__(self, title=None, text=None):
self.title = title
self.text = text
self.created_at = datetime.utcnow()
Mit dieser Definition werden Artikeldaten mit dem angegebenen Titel und Inhalt sowie der aktuellen Uhrzeit als Buchungsdatum und -zeit erstellt, indem in Zukunft wie folgt geschrieben wird.
Review(title="Artikelüberschrift", text="Artikelinhalt")
python:./cafesite/models/reviews.py
def __repr__(self):
return '<Review id:{} title:{} text:{}>'.format(self.id, self.title, self.text)
Hier werden ** id **, ** title ** und ** text ** auf der Konsole angezeigt.
Erstellen Sie unter cafe_site einen Ordner ** scripts ** und erstellen Sie darin eine Datei ** 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()
Definieren Sie eine Klasse mit class InitDB (Command):
. Durch Setzen von (Befehl)
wird es als Klasse zum Ausführen von Skripten definiert.
"createdatabse" ist ein Kommentar zur Beschreibung der Klasse.
def run (self):
ist das, was tatsächlich vom Skript ausgeführt wird. Die Modelldefinition wird in der Datenbank wiedergegeben, indem "db.create_all ()" als Ausführungsinhalt festgelegt wird.
Registrieren Sie als Nächstes die erstellte scripts.py
, damit sie auf der Konsole ausgeführt werden kann.
Erstellen Sie eine Datei mit dem Namen manage.py direkt unter dem Stammverzeichnis.
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()
Die Skriptdatei wird mit if__name__ ==" __main__ ":
registriert. Durch Setzen von manager.add_command ('init_db', InitDB ())
kann das erstellte InitDB () -Modul unter dem Namen init_db ausgeführt werden.
Konsole
python manage.py init_db
Nach der Ausführung wird eine ** cafe_site.db ** -Datei im Ordner ** cafe_site ** erstellt.
Die Fortsetzung wird unter Erstellen einer Webanwendung mit Flask ③ erläutert.
Recommended Posts