ホームページ > バックエンド開発 > Python チュートリアル > 写真を MySQL に保存し、Python3.x を使用して表示するにはどうすればよいですか?

写真を MySQL に保存し、Python3.x を使用して表示するにはどうすればよいですか?

WBOY
リリース: 2023-05-09 18:37:08
転載
1473 人が閲覧しました

    python3 は画像を mysql に保存して表示します


    最初にデータベースを構築し、次に cmd と入力し、システム操作ボックスに ipconfig と入力します。これを表示します マシンの IP 情報


    写真を MySQL に保存し、Python3.x を使用して表示するにはどうすればよいですか?


    #主なことは、マシンの IP アドレスを知ることです。


    最初に mysql でテーブルを作成し、フィールドを設定して、次のコードを入力する必要があります:

    create table image(id int(5)auto_increment primary key,image1 mediumblob)
    ログイン後にコピー

    次に、Python を開く必要があります。ここでは pycharm を使用します。

    使用する必要があるパッケージは pymysqlです。

    インポートしたい画像を pycharm にドラッグし、後で使用するために名前を設定します。最初に画像ファイルを読み取ります (バイナリ読み取りメソッドを使用し、 ‘rb’)

    f = open('2.jpg','rb')
    img = f.read()
    f.close()
    ログイン後にコピー

    次に、mysql に接続します:

    gao = pymysql.connect(
                           host='157.142.13.27',#本机或其他机器的ip地址
                           port=3306,#接口
                           user='root',#用户名
                           passwd='******',#密码
                           db='gao',#你所使用的数据库
                           charset='utf8',#编码方式
                           use_unicode=True, )
    ログイン後にコピー

    カーソルを作成し、カーソル関数を使用します:

    g = gao.cursor()
    ログイン後にコピー

    画像情報の読み取り

    f = open('2.jpg','rb')data = f.read()
    ログイン後にコピー

    execute 関数を使用してデータベースを変更します:

    g.execute('insert into image(image1) values (%s)'%data)
    ログイン後にコピー

    注: データベースに接続する権限がないことが常に表示される場合は、まずデータベースにログインし、mysql データベースを入力してから、ホストを変更します:

    update user set host = '%' where user = 'root';mysql>flush rivileges
    ログイン後にコピー

    注: 最後にカーソルと接続を必ず閉じてください。

    書き込み後、データベースに設定したテーブルの内容を確認するのですが、デコード方法の関係で文字化けの塊になってしまいますが、pycharmで画像を表示することができます。

    Python は画像を 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! ")
    ログイン後にコピー

    データベース テーブル vbp_person_ext には、person_id、image、img_type の 3 つのフィールドが含まれています (画像は画像情報です)

    プロセス中に問題が発生しました

    エラー:

    #UnicodeEncodeError: 'latin-1' コーデックは位置 303 ~ 304 の文字をエンコードできません: 序数が範囲 (256) にありません

    解決策: charset='utf8

    を追加します。

    以上が写真を MySQL に保存し、Python3.x を使用して表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート