Heim Backend-Entwicklung Python-Tutorial Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Nov 15, 2018 pm 02:06 PM
mysql python windows

Dieser Artikel zeigt Ihnen, wie flask_sqlalchemy eine Datenbank in Python betreibt. Ich hoffe, dass er Ihnen als Referenz dienen wird.

flask_sqlalchemy

Verwendet das Object-Relational Mapper (ORM)-Framework, das Datenbankoperationsanweisungen auf niedriger Ebene in objektorientierte Operationen auf hoher Ebene abstrahiert. Mit anderen Worten: Wenn wir die Datenbank-Engine direkt verwenden, müssen wir SQL-Operationsanweisungen schreiben, aber wenn wir das ORM-Framework verwenden, können wir die Operation von Datenbankentitäten wie Tabellen und Dokumenten in Python-Objekten vereinfachen

SQLAlchemy ist zum Standard für ORM in der Python-Welt geworden. Flask ist ein leichtgewichtiges Web-Framework, das frei mit ORM verwendet werden kann. SQLalchemy ist ein Plug-in, das speziell für Flask entwickelt wurde.

In Flask-SQLAlchemy wird die Datenbank über eine URL angegeben.

MySQL -->  mysql://username:password@hostname/database
Nach dem Login kopieren

Installation

 pip install flask-sqlalchemy
Nach dem Login kopieren

Vorgang in der Datenbank

1. So erstellen Sie eine Datenbankoperationsverbindung

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    email = db.Column(db.String(120), unique=True)
Nach dem Login kopieren

Um die anfängliche Datenbank zu erstellen, rufen Sie die Methode SQLAlchemy.create_all() auf, um die Tabellen und die Datenbank zu erstellen:

   db.create_all()
Nach dem Login kopieren

Ihre Datenbank wurde generiert. Jetzt erstellen wir einige Benutzer

admin = User('admin', 'admin@example.com')
guest = User('guest', 'guest@example.com')
Nach dem Login kopieren

, die jedoch noch nicht tatsächlich in die Datenbank geschrieben wurden. Stellen wir also sicher, dass sie in die Datenbank geschrieben wurden

db.session.add(admin)
db.session.add(guest)
db.session.commit()
Nach dem Login kopieren

2. Erstellen Sie die Beziehungstyp-Datenbanktabelle

SQLAlchemy ist mit einer relationalen Datenbank verbunden. Das Beste an relationalen Daten sind Beziehungen. Daher erstellen wir eine Anwendung am Beispiel zweier verwandter Tabellen.
Die häufigste Beziehung ist die Eins-zu-Viele-Beziehung. Da Beziehungen deklariert werden, bevor sie eingerichtet werden, können Sie Zeichenfolgen verwenden, um auf Klassen zu verweisen, die noch nicht erstellt wurden
Beziehungen werden mit der Funktion relation() dargestellt. Fremdschlüssel müssen jedoch separat mit der Klasse sqlalchemy.schema.ForeignKey deklariert werden.

from datetime import datetime
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from flask_sqlalchemy import SQLAlchemy
from flask import Flask
import pymysql
from sqlalchemy import desc

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

class User(db.Model):
    id = db.Column(db.Integer,autoincrement=True,primary_key=True)
    name = db.Column(db.String(50),unique=True)
    passwd = db.Column(db.String(100))
    add_time = db.Column(db.DATETIME,default=datetime.now())
    gender = db.Column(db.BOOLEAN,default=True)
    role_id = db.Column(db.INTEGER,db.ForeignKey('role.id'))

    def __repr__(self):
        return '<user:>' %(self.name)

class Role(db.Model):
    id = db.Column(db.INTEGER,autoincrement=True,primary_key=True)
    name = db.Column(db.String(50),unique=True)
    users = db.relationship('User',backref='role')
    # 给Role模型添加users属性
    # backref 是定义反向引用
        def __repr__(self):
        return '<role:>' % (self.name)
if __name__ =='__main__':
    # 1. 创建数据库表
    # db.drop_all()
    # db.create_all()
    # # 2. 创建role数据库表数据
    role_1 = Role(name='超级会员')
    role_2 = Role(name='普通会员')

    db.session.add(role_1)
    db.session.add(role_2)

    db.session.commit()

    # # # 3. 添加user表内数据,100个用户,50个为超级会员,50个为普通会员
    for i in range(1,13):
        if i%2 == 0:
            u = User(name='sheen'+str(i),passwd='sheen',role_id=1)
            db.session.add(u)
        else:
            u = User(name='star'+str(i),passwd='star',role_id=2)
            db.session.add(u)
    db.session.commit()</role:></user:>
Nach dem Login kopieren

backref definiert eine Rückreferenz und kann über User.role auf Rollenobjekte und -eigenschaften zugreifen.
Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Alle Daten abfragen

    print('角色',Role.query.all())
    print('用户',User.query.all())
Nach dem Login kopieren

Daten basierend auf Bedingungen abfragen

    # select * from tablename where xxx=xxxxx
    print(User.query.filter_by(role_id=1).all())
    print(Role.query.filter_by().all())
    print(User.query.filter_by(role_id=2).all())
Nach dem Login kopieren

Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Aktualisieren Sie die gefundenen Daten

 print('进行数据更新',end='\n')
    u =User.query.filter_by(name='sheen2').first()
    print(u)
    u.passwd = '123'
    db.session.add(u)
    db.session.commit()
Nach dem Login kopieren

Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Filterdatenmethode 2 (Filter), diese Methode kann die native SQL-Anweisung sehen

    print('数据筛选', end='\n')
    user = User.query.filter(User.role_id==1)
    print(user)
Nach dem Login kopieren

Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Beschränken Sie die Anzeige der abgefragten Informationen

    print('限制查询数据的显示', end='\n')

    users = User.query.filter_by(role_id=1).limit(3).all()
    print(users)
Nach dem Login kopieren

Sortieren Sie die Ausgabe der abgefragten Informationen (standardmäßig von klein nach groß sortieren), wenn Sie von groß nach klein sortieren möchten: desc(User. add_time)

    print('数据再处理', end='\n')
    users = User.query.filter_by(role_id=1).order_by(desc(User.name)).all()
    print(users)
Nach dem Login kopieren

Mehrere Filterfunktionen

print('多个过滤函数', end='\n')
    users = User.query.filter_by(role_id=1).order_by(desc(User.name)).limit(3).offset(1).all()
    print(users)
    users = User.query.filter_by(role_id=1).order_by(desc(User.name)).slice(1,4).all()
    print(users)
Nach dem Login kopieren

Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Page, der erste Parameter gibt an, welche Datenseite angezeigt wird, und der zweite Parameter gibt an, welche Datenseite angezeigt wird wird angezeigt Wie viele Daten

    print('分页显示', end='\n')

    users = User.query.paginate(1,5)
    print(users.items)
    users = User.query.paginate(2, 5)
    print(users.items)
Nach dem Login kopieren

Beispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt

Das obige ist der detaillierte Inhalt vonBeispiel dafür, wie flask_sqlalchemy die Datenbank in Python betreibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

Der 2-stündige Python-Plan: ein realistischer Ansatz Der 2-stündige Python-Plan: ein realistischer Ansatz Apr 11, 2025 am 12:04 AM

Sie können grundlegende Programmierkonzepte und Fähigkeiten von Python innerhalb von 2 Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master Control Flow (bedingte Anweisungen und Schleifen), 3.. Verstehen Sie die Definition und Verwendung von Funktionen, 4. Beginnen Sie schnell mit der Python -Programmierung durch einfache Beispiele und Code -Snippets.

So lesen Sie Redis -Warteschlange So lesen Sie Redis -Warteschlange Apr 10, 2025 pm 10:12 PM

Um eine Warteschlange aus Redis zu lesen, müssen Sie den Warteschlangenname erhalten, die Elemente mit dem Befehl LPOP lesen und die leere Warteschlange verarbeiten. Die spezifischen Schritte sind wie folgt: Holen Sie sich den Warteschlangenname: Nennen Sie ihn mit dem Präfix von "Warteschlange:" wie "Warteschlangen: My-Queue". Verwenden Sie den Befehl LPOP: Wischen Sie das Element aus dem Kopf der Warteschlange aus und geben Sie seinen Wert zurück, z. B. die LPOP-Warteschlange: my-queue. Verarbeitung leerer Warteschlangen: Wenn die Warteschlange leer ist, gibt LPOP NIL zurück, und Sie können überprüfen, ob die Warteschlange existiert, bevor Sie das Element lesen.

PhpMyAdmin Connection MySQL PhpMyAdmin Connection MySQL Apr 10, 2025 pm 10:57 PM

Wie verbinde ich mit PhpMyAdmin mit MySQL? Die URL zum Zugriff auf phpmyadmin ist normalerweise http: // localhost/phpmyadmin oder http: // [Ihre Server -IP -Adresse]/Phpmyadmin. Geben Sie Ihren MySQL -Benutzernamen und Ihr Passwort ein. Wählen Sie die Datenbank aus, mit der Sie eine Verbindung herstellen möchten. Klicken Sie auf die Schaltfläche "Verbindung", um eine Verbindung herzustellen.

So sehen Sie die Serverversion von Redis So sehen Sie die Serverversion von Redis Apr 10, 2025 pm 01:27 PM

FRAGE: Wie kann man die Redis -Server -Version anzeigen? Verwenden Sie das Befehlszeilen-Tool-REDIS-CLI-Verssion, um die Version des angeschlossenen Servers anzuzeigen. Verwenden Sie den Befehl "Info Server", um die interne Version des Servers anzuzeigen, und muss Informationen analysieren und zurückgeben. Überprüfen Sie in einer Cluster -Umgebung die Versionskonsistenz jedes Knotens und können automatisch mit Skripten überprüft werden. Verwenden Sie Skripte, um die Anzeigeversionen zu automatisieren, z. B. eine Verbindung mit Python -Skripten und Druckversionsinformationen.

Welche Auswirkungen haben die Wiederherstellung des Gedächtnisses? Welche Auswirkungen haben die Wiederherstellung des Gedächtnisses? Apr 10, 2025 pm 02:15 PM

Die Wiederherstellung der Wiederherstellung nimmt zusätzlichen Speicher an, RDB erhöht vorübergehend die Speicherverwendung beim Generieren von Snapshots, und AOF nimmt beim Anhängen von Protokollen weiterhin Speicher auf. Einflussfaktoren umfassen Datenvolumen, Persistenzrichtlinien und Redis -Konfiguration. Um die Auswirkungen zu mildern, können Sie RDB -Snapshot -Richtlinien vernünftigerweise konfigurieren, die AOF -Konfiguration optimieren, die Hardware verbessern und Speicherverbrauch überwachen. Darüber hinaus ist es wichtig, ein Gleichgewicht zwischen Leistung und Datensicherheit zu finden.

So starten Sie den Server mit Redis So starten Sie den Server mit Redis Apr 10, 2025 pm 08:12 PM

Zu den Schritten zum Starten eines Redis -Servers gehören: Installieren von Redis gemäß dem Betriebssystem. Starten Sie den Redis-Dienst über Redis-Server (Linux/macOS) oder redis-server.exe (Windows). Verwenden Sie den Befehl redis-cli ping (linux/macOS) oder redis-cli.exe ping (Windows), um den Dienststatus zu überprüfen. Verwenden Sie einen Redis-Client wie Redis-Cli, Python oder Node.js, um auf den Server zuzugreifen.

Anleitung zur umfassenden Verwendung von PhpMyAdmin Anleitung zur umfassenden Verwendung von PhpMyAdmin Apr 10, 2025 pm 10:42 PM

PHPMYADMIN ist nicht nur ein Datenbankmanagement -Tool, sondern auch ein tiefes Verständnis für MySQL und die Verbesserung der Programmierfähigkeiten. Zu den Kernfunktionen gehören die Ausführung von CRUD und SQL Query, und es ist wichtig, die Prinzipien von SQL -Aussagen zu verstehen. Zu den erweiterten Tipps gehören das Exportieren/Importieren von Daten und das Erlaubnismanagement, das ein tiefes Sicherheitsverständnis erfordert. Zu den potenziellen Problemen zählen die SQL -Injektion und die Lösung sind parametrisierte Abfragen und Sicherungen. Die Leistungsoptimierung beinhaltet die Optimierung der SQL -Anweisung und die Indexnutzung. Best Practices betonen die Codespezifikationen, Sicherheitspraktiken und regelmäßige Backups.

See all articles