Heim Backend-Entwicklung Python-Tutorial Detaillierte Erläuterung von Beispielen zum Verbinden von Flask und MySQL (Python)

Detaillierte Erläuterung von Beispielen zum Verbinden von Flask und MySQL (Python)

Apr 26, 2017 am 11:09 AM
flask mysql python

Der vierte Artikel über die Geburt einer auf Flask basierenden Webanwendung stellt hauptsächlich die Verbindung von Flask und MySQL vor. Interessierte Freunde können sich auf die Implementierung von

beziehen Der Grund, warum sie als Teilfunktion bezeichnet wird, liegt darin, dass es definitiv nicht erlaubt ist, den Benutzernamen und das Passwort als feste Werte zu schreiben. Eine ganze Funktion erfordert mindestens Registrierung, Anmeldung, Passwortänderung usw., die bereitgestellt werden müssen a Die Möglichkeit, diese Werte in der Datenbank zu speichern.

Die aktuellen Mainstream-Datenbanken sind in zwei Typen unterteilt, nämlich relationale Datenbanken und NoSql-Datenbanken. Für kleine und mittlere Systeme sind die Leistung und Benutzerfreundlichkeit der beiden Datenbanken gleichwertig und beide sind eine gute Wahl .

Grundkonfiguration

Hier verwenden wir das Flask-Integrationspaket des SQLAlchemy-Datenbankframeworks, nämlich flask-SQLAlchemy, um Datenbankoperationen durchzuführen.

SQLAlchemy ist ein sehr gutes Framework, das Datenbankoperationen vereinfacht. Es bietet ORM-Funktionen auf hoher Ebene und SQL-Funktionen auf niedriger Ebene, was sehr praktisch ist.

Die Installationsmethode ist dieselbe wie beim vorherigen Typ oder dem Pip-Befehl:

pip3.6 install flask-sqlalchemy
Nach dem Login kopieren

Ändern Sie nach Abschluss der Installation den Standardkonfigurationsteil und importieren Sie zunächst das Paket :

from flask.ext.sqlalchemy import SQLAlchemy
Nach dem Login kopieren

Dann konfigurieren Sie die Linkzeichenfolge:

app.config["SQLALCHEMY_DATABASE_URI"]='mysql://root:1234@localhost/cblog'
Nach dem Login kopieren

Konfigurieren Sie die automatische Übermittlung von Änderungen nach Abschluss der Anfrage:

app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"]=True
Nach dem Login kopieren

SQLAlchemy instanziieren:

db=SQLAlchemy(app)
Nach dem Login kopieren

Modelleinstellungen

Nachdem die Installation abgeschlossen ist Verbessern Sie das Anmeldebeispiel weiter und ändern Sie die Datei default.py. Fügen Sie Benutzermodell (Klasse) und Rollenmodell (zur Anzeige der Zuordnung) hinzu.

Rollenklasse

class Role(db.Model): #需继承模型
 __tablename__="roles" #db中表明,如果不设置,则会与class同的默认名
 id=db.Column(db.Integer,primary_key=True) #SQLAlchemy要求必须有主键,一般命名为id即可
 name=db.Column(db.String(50),unique=True) #表示name为字符串,不重复
 users=db.relationship("User",backref='role') #关联user模型,并在user中添加反向引用(backref)
Nach dem Login kopieren

Benutzerklasse

class User(db.Model):
 __tablename__="users"
 id=db.Column(db.Integer,primary_key=True)
 username=db.Column(db.String(50),unique=True,index=True) #此列带索引
 password=db.Column(db.String(50))
 role_id=db.Column(db.Integer,db.ForeignKey("roles.id")) #外键指向roles表中的id列
Nach dem Login kopieren

Wir müssen unten überlegen, wie es ausgeführt werden soll. Es muss praktisch sein und darf nicht in den Logikcode eindringen. Zum Beispiel der Code zur Beurteilung der Datenbank Status wird als Parameter an app.run() übergeben. Zu diesem Zeitpunkt ist die Shell praktisch

Konfigurationsskript

Wenn Sie möchten, dass Flask funktioniert Wenn Sie Befehlszeilenskripts unterstützen, müssen Sie zuerst die Erweiterung „flask-script“ installieren:

pip3.6 install flask-script
Nach dem Login kopieren

Standard.py ändern. Der Code:

from flask.ext.script import Manager
mamager=Manager(app)
....
if __name__=='__main__':
 #app.run(debug=True)
 mamager.run()
Nach dem Login kopieren

Führen Sie ihn nach der Änderung erneut aus:

python default.py
Nach dem Login kopieren

und stellen Sie fest, dass es nicht erfolgreich ausgeführt wird, aber es wird eine Eingabeaufforderung angezeigt:


Sie können sehen, dass die folgenden Parameter erforderlich sind: Dies sind Shell (Skript ausführen), Runserver (Dienst starten) und Hilfe

Starten Sie den folgenden Dienst:

python default.py runserver
Nach dem Login kopieren

Dienst erfolgreich ausgeführt

Weitere Datenbankkonfigurationen

Aber zu diesem Zeitpunkt wird beim Zugriff auf die Site (127.0.0.1:5000) ein 500-Fehler angezeigt, der darauf hinweist, dass kein MySQL-Modul vorhanden ist. Warum ist das so? Der Grund liegt offensichtlich darin, dass der MySQL-Treiber nicht installiert ist. Verwenden Sie den Befehl pip, um den Treiber zu installieren:

pip3.6 install MySQL-python
Nach dem Login kopieren

Es wurde ein Fehler gefunden und der angezeigte Inhalt ist (hier nur Win-System):

Installieren Sie gemäß den Eingabeaufforderungen das C++-Toolkit und folgen Sie der Download-Adresse in den Eingabeaufforderungen

landinghub.visualstudio.com/visual-cpp-build-tools

Nachdem der Download abgeschlossen ist, installieren Sie

und starten Sie dann neu, um MySQL-Python zu installieren. Nachdem ich Baidu durchgesehen hatte, stellte ich fest, dass die MySQLdb Die Bibliothek unterstützt nur bis Python2.7 und nicht mehr 3.x, daher muss ich andere Methoden verwenden, die PyMySQL-Bibliothek verwenden:

pip3.6 install PyMySQL
Nach dem Login kopieren

Dann ändern Sie den Code von default.py und fügen Sie zwei Zeilen hinzu:

import pymysql
pymysql.install_as_MySQLdb()
Nach dem Login kopieren

Geben Sie den Quellcode ein und achten Sie auf diese Zeile:

sys.modules["MySQLdb"] = sys.modules["_mysql"] = sys.modules["pymysql"]
Nach dem Login kopieren

, um MySQL erfolgreich zu verwenden und eine Verbindung dazu herzustellen .
Geben Sie die Verbindung im Browser ein und geben Sie die Site korrekt ein.

Als nächstes verwenden Sie die Shell, um die Datenbanktabelle zu erstellen und geben Sie das Stammverzeichnis von default.py ein:

python default.py shell
from default import db
db.create_all()
Nach dem Login kopieren

Wenn hierbei kein Fehler gemeldet wird Zeit, dann sollte die Datenbanktabelle erstellt sein:


Datenbankmigration

Dann kommt das Problem Zu diesem Zeitpunkt wird das Modell geändert. Es wird nicht in der Datenbank angezeigt. Was soll ich also tun, wenn ich es ändere? Im Moment ist es auch ganz einfach:

db.drop_all()
db.create_all()
Nach dem Login kopieren

Aber dies wird jetzt nur zum Debuggen verwendet. Wenn bereits Daten in der Datenbank vorhanden sind, ist dies definitiv unerträglich der Datenbank Das Migrations-Plugin Migrate ist hier. Das erste ist immer noch dasselbe. Es muss installiert werden:

pip3.6 install flask-migrate
Nach dem Login kopieren

Ändern Sie wie zuvor die Datei default.py zur Konfiguration.

from flask.ext.migrate import Migrate,MigrateCommand
migrate=Migrate(app,db) #配置迁移
mamager.add_command("db",MigrateCommand) #配置迁移命令
Nach dem Login kopieren

Verwenden Sie dann den Befehl init, um das Migrationslager zu initialisieren.

 python default.py db init
Nach dem Login kopieren

Die Befehlszeile zeigt Folgendes an:


Fügen Sie dann das Migrationsverzeichnis hinzu:

zeigt an, dass die Migrationsdatei initialisiert wurde.

migrate框架提供了一些命令来进行迁移操作,分别为(使用default.py文件举例):

#根据差异创建迁移
python default.py db migrate -m "说明"
#改动差异 
python default.py db upgrade
#取消差异改动
python default.py db downgrade
Nach dem Login kopieren

回到表单

接下来看看登录如何与数据库关联起来,修改login方法内的代码:

@app.route("/login",methods=["POST"])
def loginPost():
 username=request.form.get("username","")
 password=request.form.get("password","")
 user=User.query.filter_by(username=username,password=password).first() #数据库查询
 if user is not None:
 session["user"]=username
 return render_template("/index.html",name=username,site_name='myblog')
 else:
 flash("您输入的用户名或密码错误")
 return render_template("/login.html") #返回的仍为登录页
Nach dem Login kopieren

执行结果非常完美。

一些总结

下面是一些关于python和db相连的总结性的东西

数据类型

列选项

数据库操作

查询过滤器

经过这几章,登录功能已经基本完成,在下一章中将讲解用户注册的相关功能。

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen zum Verbinden von Flask und MySQL (Python). 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 sehen Sie sich den SQL -Datenbankfehler an So sehen Sie sich den SQL -Datenbankfehler an Apr 10, 2025 pm 12:09 PM

Die Methoden zum Anzeigen von SQL -Datenbankfehlern sind: 1. Fehlermeldungen direkt anzeigen; 2. Verwenden Sie Showfehler und Warnungsbefehle anzeigen; 3.. Greifen Sie auf das Fehlerprotokoll zu. 4. Verwenden Sie Fehlercodes, um die Ursache des Fehlers zu finden. 5. Überprüfen Sie die Datenbankverbindung und die Abfrage -Syntax. 6. Verwenden Sie Debugging -Tools.

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.

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 iterieren Sie über alle Tasten mit dem Befehl scan itert So iterieren Sie über alle Tasten mit dem Befehl scan itert Apr 10, 2025 pm 03:33 PM

Durch die Verwendung des Scan -Befehls können wir alle Schlüssel in Redis iterieren, indem wir den Schritten folgen: Der anfängliche Cursor wird auf 0 gesetzt. Schleifen Sie den Befehl scan 0, um den Ergebnissatz und einen neuen Cursor abzurufen. Die Anzahl der in den einzelnen Ergebnismengen enthaltenen Schlüssel kann durch die Anzahl der Anzahl angegeben werden. Verwenden Sie den neuen Cursor als erster Parameter des Scan -Befehls, um den nächsten Ergebnissatz zu erhalten. Setzen Sie fort, bis der zurückgegebene Cursor 0 beträgt, was darauf hinweist, dass keine Ergebnisse mehr vorhanden sind.

See all articles