Maison > développement back-end > Tutoriel Python > Comment stocker des images sur MySQL et les afficher à l'aide de Python3.x ?

Comment stocker des images sur MySQL et les afficher à l'aide de Python3.x ?

WBOY
Libérer: 2023-05-09 18:37:08
avant
1474 Les gens l'ont consulté

    Python3 stocke les images dans MySQL et les affiche


    Nous construisons d'abord la base de données, puis entrons cmd, entrez ipconfig dans la zone de fonctionnement du système pour afficher les informations IP de la machine


    Comment stocker des images sur MySQL et les afficher à laide de Python3.x ?


    Le principal le truc c'est de connaître l'adresse IP de la machine.


    Nous devons d'abord créer une table dans MySQL, définir les champs et saisir le code suivant :

    create table image(id int(5)auto_increment primary key,image1 mediumblob)
    Copier après la connexion

    Ensuite, nous devons ouvrir Python, j'utilise pycharm.

    Le package que nous devons utiliser est pymysql

    Nous faisons glisser l'image que nous voulons importer dans pycharm, définissons le nom pour une utilisation ultérieure, nous lisons d'abord le fichier image (en utilisant la méthode de lecture binaire, ‘rb’)

    f = open('2.jpg','rb')
    img = f.read()
    f.close()
    Copier après la connexion

    Ensuite, nous nous connectons avec mysql :

    gao = pymysql.connect(
                           host='157.142.13.27',#本机或其他机器的ip地址
                           port=3306,#接口
                           user='root',#用户名
                           passwd='******',#密码
                           db='gao',#你所使用的数据库
                           charset='utf8',#编码方式
                           use_unicode=True, )
    Copier après la connexion

    Créez un curseur et utilisez la fonction curseur :

    g = gao.cursor()
    Copier après la connexion

    Lire les informations sur l'image

    f = open('2.jpg','rb')data = f.read()
    Copier après la connexion

    Utilisez la fonction d'exécution pour modifier la base de données :

    g.execute('insert into image(image1) values (%s)'%data)
    Copier après la connexion

    Remarque : s'il montre toujours que vous ne le faites pas Si nous avons l'autorisation de nous connecter à la base de données, nous nous connectons d'abord à la base de données et entrons dans votre base de données mysql, puis changeons d'hôte :

    update user set host = '%' where user = 'root';mysql>flush rivileges
    Copier après la connexion

    Notez que le curseur et la connexion doivent être fermés à la fin.

    Après l'écriture, nous pouvons vérifier le contenu de la table que nous avons définie dans la base de données, mais en raison de la méthode de décodage, ce que nous voyons est un tas de caractères tronqués. Nous pouvons afficher l'image dans pycharm.

    Python importe des images dans la base de données MySQL

    # 今天需要用Python实现将图片导入MySQL数据库。看了看网上的一些写法,自己也过一遍,记录下来,以防忘记。
     
    # 功能:将图片导入到MySQL数据库
    import sys
    import pymysql
    from PIL import Image
    import os
     
    path = "./"
     
    #读取图片文件
    fp = open("./陈丹江-420381198212068517.JPG", 'rb')
    img = fp.read()
    fp.close()
     
    #建立一个MySQL连接
    database = pymysql.connect(host="10.31.143.6", user="root", passwd="******", db="aaa", charset='utf8')
    # 存入图片
    # 创建游标
    cursor = database.cursor()
    #注意使用Binary()函数来指定存储的是二进制
    sql = "INSERT INTO vbp_person_ext (person_id, image, img_type) VALUES  (%s, %s, %s);"
    args = ('39', img, 'JPG')
    cursor.execute(sql, args)
     
    database.commit()
    # 关闭游标
    cursor.close()
    # 关闭数据库连接
    database.close()
    print("============")
    print("Done! ")
    Copier après la connexion

    La table de base de données vbp_person_ext contient trois champs : person_id, image, img_type (l'image est une information sur l'image)

    Problèmes rencontrés pendant le processus

    Erreur :

    UnicodeEncodeError : 'latin- 1 'le codec ne peut pas encoder les caractères en position 303-304 : ordinal hors plage (256)

    Solution : ajoutez charset='utf8

    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!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal