[PYTHON] Erstellen einer Webanwendung mit Flask ②

Behandeln Sie die Datenbank

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.

SQL Alchemy-Initialisierung

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.

Modell erstellen (Modell in MTV)

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.

Modelldefinition

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.

Attributdefinition

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.

Verarbeitung nach Modellerstellung

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

Definieren Sie das Anzeigeformat, wenn darauf verwiesen wird

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 eines Skripts, mit dem Sie feste Prozesse gemeinsam verwenden können

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.

Erstellen Sie manage.py

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

Erstellen einer Webanwendung mit Flask ②
Erstellen einer Webanwendung mit Flask ①
Erstellen einer Webanwendung mit Flask ③
Erstellen einer Webanwendung mit Flask ④
Erstellen einer Web-App für die Sprachtranskription
Versuchen Sie es mit dem Webanwendungsframework Flask
Erstellen einer Datenanalyseanwendung mit Streamlit
Webanwendung mit Flasche (1)
Erstellen einer interaktiven Anwendung mithilfe eines Themenmodells
[GCP] Verfahren zum Erstellen einer Webanwendung mit Cloud-Funktionen (Python + Flask)
Ich möchte eine Webanwendung mit React und Python Flask erstellen
WEB-Anwendungsentwicklung mit Django-Entwicklung Teil 1-
Entwicklung von Webanwendungen mit Flask
Webanwendung mit Python + Flask ② ③
Webanwendung mit Python + Flask ④
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Entwicklung einer WEB-Anwendung mit Django [Django-Start]
Entwicklung einer WEB-Anwendung mit Django [Anwendungszusatz]
Erstellen eines Flask-Servers mit Docker
Erstellen einer einfachen Tabelle mit Stettytable
Erstellen Sie eine Webanwendung mit Django
Erstellen eines Lernmodells mit MNIST
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 1 erstellen
Webanwendung mit Python + Flask (unter Verwendung von VScode) # 1 - Aufbau einer virtuellen Umgebung-
Python: Einführung in Flask: Erstellen einer Nummernidentifizierungs-App mit MNIST
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 2 erstellen
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 3 erstellen
Lassen Sie uns eine WEB-Anwendung für das Telefonbuch mit Flasche Teil 4 erstellen
Entwicklung einer WEB-Anwendung mit Django [Modelldefinition]
Entwicklung der WEB-Anwendung mit Django [Grundeinstellung]
WEB-Anwendungsentwicklung mit Django-Development Environment Construction-
Anzeigen von Matplotlib-Diagrammen in einer Webanwendung
Eindrücke von der Verwendung von Flask für einen Monat
Entwicklung einer WEB-Anwendung mit Django [Request Processing]
Entwicklung einer WEB-Anwendung mit Django [Zusätzliche Vorlage]
[Python] Eine schnelle Webanwendung mit Bottle!
Erstellen Sie eine einfache Web-App mit Flasche
Führen Sie eine Python-Webanwendung mit Docker aus
Erstellen Sie einen Webdienst mit Docker + Flask
Ich habe versucht, das Webanwendungs-Framework zu vergleichen
Ich habe eine WEB-Bewerbung bei Django gemacht
Erstellen Sie mit pyenv unter Ubuntu 12.04 schnell eine Ausführungsumgebung für Python3.4 + Nginx + uWSGI + Flask-Webanwendungen
Einstellungen der Kolbenanwendung
Starten Sie einen Webserver mit Bottle and Flask (ich habe auch versucht, Apache zu verwenden)
Implementieren Sie eine einfache Anwendung mit Python Full Scratch ohne Verwendung eines Webframeworks.
[Python] Teilen Sie eine große Flask-Datei mit Blueprint
Entwicklung einer WEB-Anwendung mit Django [Erstellung des Admin-Bildschirms]
Erstellen Sie eine Webmap mit Python und GDAL
Schritte zum Entwickeln einer Webanwendung in Python
Starten Sie einen Webserver mit Python und Flask
Wovon ich beim Erstellen von Webanwendungen in einer Windows-Umgebung abhängig war
Anfänger haben versucht, eine Cloud-native Webanwendung mit Datastore / GAE zu erstellen
Erstellen Sie eine Web-App, die PDF mit Flask und PyPDF2 in Text konvertiert
Versuchen Sie, eine Webanwendung mit Vue.js und Django (Mac Edition) zu erstellen - (1) Umgebungskonstruktion, Anwendungserstellung
Erstellen Sie mit venv unter Ubuntu 14.04 LTS schnell eine Ausführungsumgebung für Python3.4 + Nginx + uWSGI + Flask-Webanwendungen