


Explication détaillée des exemples de connexion de Flask et de MySQL (python)
Le quatrième article sur la naissance d'une application Web basée sur flask. Cet article présente principalement comment interconnecter flask et mysql. Il a une certaine valeur de référence. Les amis intéressés peuvent se référer à
Le chapitre 1 implémente une partie de. la fonction de connexion. La raison pour laquelle on l'appelle une fonction partielle est qu'il n'est absolument pas permis d'écrire le nom d'utilisateur et le mot de passe sous forme de valeurs fixes. Une fonction entière nécessite au moins une inscription, une connexion, une modification du mot de passe, etc., ce qui nécessite de fournir. a La possibilité de stocker ces valeurs dans la base de données.
Les bases de données grand public actuelles sont divisées en deux types, à savoir les bases de données relationnelles et les bases de données NoSql. Pour les systèmes de petite et moyenne taille, les performances et la facilité d'utilisation des deux bases de données sont équivalentes, et ce sont toutes deux de bons choix. .
Configuration de base
Ici, nous utilisons le package d'intégration flask du framework de base de données SQLAlchemy, à savoir flask-SQLAlchemy, pour effectuer des opérations de base de données.
SQLAlchemy est un très bon framework qui simplifie les opérations de base de données. Il fournit des fonctions ORM de haut niveau et SQL de bas niveau, ce qui est très pratique à utiliser.
La méthode d'installation est la même que le type précédent, ou la commande pip :
pip3.6 install flask-sqlalchemy
Une fois l'installation terminée, modifiez la partie de configuration par défaut, importez d'abord le package :
from flask.ext.sqlalchemy import SQLAlchemy
Configurez ensuite la chaîne de lien :
app.config["SQLALCHEMY_DATABASE_URI"]='mysql://root:1234@localhost/cblog'
Configurez la soumission automatique des modifications une fois la demande terminée :
app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"]=True
Instancier SQLAlchemy :
db=SQLAlchemy(app)
Paramètres du modèle
Une fois l'installation terminée , continuez à améliorer l'exemple de connexion et modifiez le fichier default.py, ajoutez le modèle utilisateur (classe) et le modèle de rôle (pour montrer l'association)
Classe de rôle
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)
Classe d'utilisateur
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列
Nous devons réfléchir à la manière de l'exécuter ci-dessous, il doit être pratique et ne peut pas envahir le code logique, ce qui nécessite qu'il ne puisse pas être codé en dur dans le code logique. Par exemple, le code pour juger la base de données. status est passé en paramètre à app.run(). À ce stade, le shell est utile
Script de configuration
Si vous souhaitez que Flask prend en charge les scripts de ligne de commande, vous devez d'abord installer l'extension flask-script :
pip3.6 install flask-script
Modifier default.py Le code :
from flask.ext.script import Manager mamager=Manager(app) .... if __name__=='__main__': #app.run(debug=True) mamager.run()
Après modification, exécutez-le à nouveau :
python default.py
et constatez qu'il ne s'exécute pas correctement, mais il y a une invite :
Vous pouvez voir que les paramètres suivants sont requis, à savoir shell (exécuter le script), runserver (démarrer le service) et aider
Démarrez le service ci-dessous :
python default.py runserver
Service exécuté avec succès
Plus de configurations de base de données
Mais à ce moment-là, lors de l'accès au site (127.0.0.1:5000), une erreur 500 apparaîtra, indiquant qu'il n'y a pas de module mysql, pourquoi ? Évidemment, la raison est que le pilote mysql n'est pas installé. Utilisez la commande pip pour installer le pilote :
pip3.6 install MySQL-python
Une erreur est trouvée et le contenu affiché est (uniquement win system ici) :
Selon les invites, installez la boîte à outils C++ et suivez l'adresse de téléchargement sur les invites
landinghub.visualstudio.com/visual-cpp-build-tools
Une fois le téléchargement terminé, directement le fichier exe, installez
puis redémarrez pour installer MySQL-python. Après avoir passé par Baidu, j'ai découvert que MySQLdb. La bibliothèque ne prend en charge que jusqu'à python2.7 et ne prend plus en charge 3.x, je dois donc utiliser d'autres méthodes, utilisez la bibliothèque PyMySQL :
pip3.6 install PyMySQL
Modifiez ensuite le code de default.py. et ajoutez deux lignes :
import pymysql pymysql.install_as_MySQLdb()
Entrez le code source et faites attention à cette ligne :
sys.modules["MySQLdb"] = sys.modules["_mysql"] = sys.modules["pymysql"]
pour réussir à utiliser et à vous connecter à MySQL .
Entrez la connexion dans le navigateur et entrez correctement sur le site.
Ensuite, utilisez le shell pour créer la table de base de données et entrez dans le répertoire racine de default.py :
python default.py shell from default import db db.create_all()
Si aucune erreur n'est signalée à ce niveau temps, alors la table de base de données devrait être Création terminée :
Migration de la base de données
Ensuite, le problème vient , à ce stade, modifier le modèle ne sera pas reflété dans la base de données, alors que dois-je faire si je le modifie ? Pour l'instant, c'est aussi très simple :
db.drop_all() db.create_all()
Mais cela n'est utilisé que pour le débogage maintenant. S'il y a déjà des données dans la base de données, ce sera certainement insupportable à ce moment-là. de la base de données Le plug-in de migration Migrate est ici. La première chose est toujours la même. Il faut l'installer :
pip3.6 install flask-migrate
Comme avant, après l'installation, modifiez le fichier default.py pour la configuration :
from flask.ext.migrate import Migrate,MigrateCommand migrate=Migrate(app,db) #配置迁移 mamager.add_command("db",MigrateCommand) #配置迁移命令
Utilisez ensuite la commande init pour initialiser l'entrepôt de migration
python default.py db init
La ligne de commande affiche :
Ajoutez ensuite le répertoire migrations :
indique que le fichier de migration a été initialisé.
migrate框架提供了一些命令来进行迁移操作,分别为(使用default.py文件举例):
#根据差异创建迁移 python default.py db migrate -m "说明" #改动差异 python default.py db upgrade #取消差异改动 python default.py db downgrade
回到表单
接下来看看登录如何与数据库关联起来,修改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") #返回的仍为登录页
执行结果非常完美。
一些总结
下面是一些关于python和db相连的总结性的东西
数据类型
列选项
数据库操作
查询过滤器
经过这几章,登录功能已经基本完成,在下一章中将讲解用户注册的相关功能。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

Comment se connecter à MySQL à l'aide de PhpMyAdmin? L'URL pour accéder à phpmyadmin est généralement http: // localhost / phpmyadmin ou http: // [votre adresse IP de serveur] / phpmyadmin. Entrez votre nom d'utilisateur et votre mot de passe MySQL. Sélectionnez la base de données à laquelle vous souhaitez vous connecter. Cliquez sur le bouton "Connexion" pour établir une connexion.

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Pour lire les données de Redis, vous pouvez suivre ces étapes: 1. Connectez-vous au serveur Redis; 2. Utilisez Get (clé) pour obtenir la valeur de la clé; 3. Si vous avez besoin de valeurs de chaîne, décodez la valeur binaire; 4. L'utilisation existe (clé) pour vérifier si la clé existe; 5. Utilisez MGET (KEYS) pour obtenir plusieurs valeurs; 6. Utilisez le type (clé) pour obtenir le type de données; 7. Redis a d'autres commandes de lecture, telles que: obtenir toutes les clés dans un modèle de correspondance, en utilisant des curseurs pour itérer les clés et tri les valeurs de clés.

PhPMyAdmin n'est pas seulement un outil de gestion de la base de données, il peut vous donner une compréhension approfondie de MySQL et améliorer les compétences en programmation. Les fonctions principales incluent l'exécution de la requête CRUD et SQL, et il est crucial de comprendre les principes des instructions SQL. Les conseils avancés incluent l'exportation / l'importation de données et la gestion des autorisations, nécessitant une compréhension approfondie de la sécurité. Les problèmes potentiels incluent l'injection SQL et la solution est des requêtes paramétrées et des sauvegardes. L'optimisation des performances implique l'optimisation des instructions SQL et l'utilisation de l'index. Les meilleures pratiques mettent l'accent sur les spécifications du code, les pratiques de sécurité et les sauvegardes régulières.
