画像をMySQLデータベースに保存し、フロントエンドページに表示するための実装コード

画像をMySQLデータベースに保存し、フロントエンドページに表示するための実装コード

エディターは Python の Django フレームワークを使用して完成します。

1. まず、pycharmを使用してDjangoプロジェクトを作成し、関連する環境を設定します。

ここでエディターはデフォルトのプロジェクトを作成します

settings.pyで変更する 2 つの設定

データベース = {
    'デフォルト': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

        'エンジン': 'django.db.backends.mysql',
        「名前」: 「写真」,
        'ホスト': '127.0.0.1',
        'ポート': '3306',
        'ユーザー': 'root',
        'パスワード': '201314',

    }
}


STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR、'静的')
]

2. テーブルを作成する

① キーボードのwin+sキーを押してからcmdと入力し、Enterキーを2回押して中国語入力方式に、Enterキーを1回押して英語入力方式に切り替えてDOSウィンドウに入ります。

② mysql -uroot -p password と入力し、Enter キーを押して mysql データベースに入り、create database table name と入力し、小さい Enter キーを押してデータベースを作成します🆗

ここに画像の説明を挿入

③appのmodels.pyにテーブル構造を作成する

モデル.py

django.dbからモデルをインポートする

# ここでモデルを作成します。


クラス Images(models.Model):
    img = models.ImageField(upload_to='static/pictures/') # upload_to='static/pictures/' は画像保存用のフォルダ名を指定します。ファイルのアップロード後に自動的に作成されます。 img_name = models.CharField(max_length=32)
    create_time = models.DateTimeField(auto_now_add=True)

④データベースの移行

pycharmのターミナルで次の2つの文を順番に実行します。

python manage.py 移行の作成

python manage.py 移行

ここに画像の説明を挿入

3. 写真アップロード機能

urls.py

django.conf.urlsからurlをインポートする
django.contribからadminをインポート
app01からビューをインポート

urlパターン = [
    url(r'^admin/$', admin.site.urls),

    url(r'^upload/$', views.upload, name='upload'),

]

ビュー.py

django.shortcuts から render をインポートし、リダイレクトします
app01からモデルをインポート


# ここでビューを作成します。


defアップロード(リクエスト):
    エラー = ''
    request.method == 'POST'の場合:
        img = request.FILES.get('img')
        pic_name = 画像名
        pic_name.split('.')[-1] == 'mp4'の場合:
            error = 'この形式の画像のアップロードはまだサポートされていません! ! ! '
        それ以外:
            models.Images.objects.create(img_name=pic_name, img=img)
            リダイレクトを返す('表示')
    レンダリングを返します(リクエスト、'upload.html'、locals())

フロントエンドアップロードページ upload.html

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>写真をアップロード</title>
</head>
<本文>
<div style="height: 160px">
    <フォームアクション="" メソッド="post" enctype="multipart/form-data">
        {% csrf_token %}
        <h1>画像アップロードページ</h1>
        <テーブルセルパディング="5px">
            <tr>
                <td>写真をアップロード</td>
                <td><input type="file" name="img"></td>
            </tr>
            <tr>
                <td>
                    <button>アップロード</button>
                </td>
                <td><strong style="color: red">{{ エラー }}</strong></td>
            </tr>
        </テーブル>
    </フォーム>
</div>
<div スタイル="text-align: center;color: #2b542c;font-size: 20px;">
    <a href="{% url 'show' %}" rel="external nofollow" >戻る</a>
</div>
</本文>
</html> 

ここに画像の説明を挿入

4. 画像表示機能

urls.py

「」
django.conf.urlsからurlをインポートする
django.contribからadminをインポート
app01からビューをインポート

urlパターン = [
    url(r'^admin/$', admin.site.urls),

    url(r'^upload/$', views.upload, name='upload'),
    url(r'^show/$', views.show, name='show'),

]

ビュー.py

django.shortcuts から render をインポートし、リダイレクトします
app01からモデルをインポート


# ここでビューを作成します。


defアップロード(リクエスト):
    エラー = ''
    request.method == 'POST'の場合:
        img = request.FILES.get('img')
        pic_name = 画像名
        pic_name.split('.')[-1] == 'mp4'の場合:
            error = 'この形式の画像のアップロードはまだサポートされていません! ! ! '
        それ以外:
            models.Images.objects.create(img_name=pic_name, img=img)
            リダイレクトを返す('表示')
    レンダリングを返します(リクエスト、'upload.html'、locals())


def show(リクエスト):
    all_images = モデル.Images.objects.all()
    # all_images 内の i について:
    # 印刷(i.img)
    レンダリングを返します(リクエスト、'show.html'、locals())

フロントエンドディスプレイ show.html

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>写真を表示</title>
</head>
<本文>
{% は all_images 内の画像 %}
    <img src="/{{ image.img }}" スタイル="幅: 240px;高さ: 240px;">
{% endfor %}
<br/>
<p style="text-align: center;color: #2b542c;font-size: 20px;">
    <a href="{% url 'upload' %}" rel="external nofollow" rel="external nofollow" >戻る</a>
</p>
</本文>
</html> 

ここに画像の説明を挿入

5. 写真削除機能

urls.py

django.conf.urlsからurlをインポートする
django.contribからadminをインポート
app01からビューをインポート

urlパターン = [
    url(r'^admin/$', admin.site.urls),

    url(r'^upload/$', views.upload, name='upload'),
    url(r'^show/$', views.show, name='show'),
    url(r'^delete/$', views.delete, name='delete'),

]

ビュー.py

django.shortcuts から render をインポートし、リダイレクトします
app01からモデルをインポート


# ここでビューを作成します。


defアップロード(リクエスト):
    エラー = ''
    request.method == 'POST'の場合:
        img = request.FILES.get('img')
        pic_name = 画像名
        pic_name.split('.')[-1] == 'mp4'の場合:
            error = 'この形式の画像のアップロードはまだサポートされていません! ! ! '
        それ以外:
            models.Images.objects.create(img_name=pic_name, img=img)
            リダイレクトを返す('表示')
    レンダリングを返します(リクエスト、'upload.html'、locals())


def show(リクエスト):
    all_images = モデル.Images.objects.all()
    # all_images 内の i について:
    # 印刷(i.img)
    レンダリングを返します(リクエスト、'show.html'、locals())


def delete(リクエスト):
    pk = リクエスト.GET.get('pk')
    モデル.Images.objects.filter(id=pk).delete()
    リダイレクトを返す('表示')

表示.html

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>写真を表示</title>
</head>
<本文>
{% は all_images 内の画像 %}
    <img src="/{{ image.img }}" スタイル="幅: 240px;高さ: 240px;">
    <a href="/delete/?pk={{ image.id }}" rel="external nofollow" >削除</a>
{% endfor %}
<br/>
<p style="text-align: center;color: #2b542c;font-size: 20px;">
    <a href="{% url 'upload' %}" rel="external nofollow" rel="external nofollow" >戻る</a>
</p>
</本文>
</html> 

ここに画像の説明を挿入

6. 全体をデモンストレーションする

ここに画像の説明を挿入

時間が限られているため、美しいページやスタイルを追加せずに、可能な限り最小限の方法で実装されています。美しさが好きな友人は、Bootstrap の公式サイトまたは jq22 にアクセスして自分で追加できます。 ! !

これで、MySQL データベースに画像を保存してフロントエンド ページに表示する方法についての説明は終わりです。MySQL データベースに保存してフロントエンド ページのコンテンツに表示する関連画像の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • dockerがredisを再起動するとmysqlデータが失われる問題を解決する
  • MySQL で置換操作を使用したときにデータ損失が発生する問題の解決策
  • サーバーがダウンしたときにMySQLデータの損失を防ぐためのいくつかのソリューション
  • MySQLでデータを削除してもディスク領域が解放されないのはなぜですか
  • Python の基礎: MySQL データベースの操作
  • MySQLデータベースに中国語の文字を保存するときに発生するエラーを解決する方法を教えます
  • Djangoは写真をMySQLデータベースに保存し、フロントエンドページに表示します。
  • MyBatis バッチによる MySql データの挿入/変更/削除
  • MySQLデータ移行の概要
  • GolangはMySQLデータベーストランザクションの送信とロールバックを実装します
  • MySQLインストール後のデフォルトデータベースの役割の詳細な説明
  • MySQLデータ損失の原因と解決策

<<:  熟練デザイナーの7つの原則(1):フォントデザイン

>>:  タグ li はブロックレベル要素ですか?

推薦する

ネイティブJavaScriptカルーセル実装方法

この記事では、JavaScriptカルーセルの実装方法を参考までに紹介します。具体的な内容は次のとお...

MySQLクエリキャッシュに関するヒント

目次序文QueryCache の概要クエリキャッシュ構成QueryCache の使用queryCac...

HTML/CSS の基礎 - HTML コード記述におけるいくつかの注意事項 (必読)

この記事の警告事項は、ブラウザの互換性とはまったく関係ありません。主に、プロジェクトで遭遇したいくつ...

NFS サーバーの原理と、その構築、構成、展開の手順を簡単に分析します。

目次NFS サービスの概要NFS とは何ですか? NFS マウントの原則NFS サーバーはデータ転送...

MySQL データベースのバックアップとリカバリの実装コード

データベースのバックアップ #文法: # mysqldump -h server-u usernam...

Pycharmとsshリモートアクセスサーバーdockerの詳細なチュートリアル

背景: 一部の実験はサーバー上で完了する必要があります。したがって、リモート サーバー上のコードをロ...

Vue は小数点付きの星評価を実装します

この記事では、小数点付きの星評価を実装するためのVueの具体的なコードを参考までに共有します。具体的...

大きな MySQL テーブルに列を追加する方法

質問は https://www.zhihu.com/question/440231149 から参照さ...

MYSQLの文字セット設定方法(端末の文字セット)の詳しい説明

序文ターミナルを使用してデータベースまたはテーブルを作成するたびに、文字セットが latin1 であ...

Vue Routerはバックグラウンドデータに応じて異なるコンポーネントをロードします

目次実際のプロジェクトで遭遇する要件実装が間違っているところもある私は個人的に、実装するより良い方法...

MySQL 5.7.17 のインストールと設定方法のグラフィック チュートリアル (Windows10)

MySQL 5.7.17 のインストールと設定方法の概要最初のステップは、MySQL公式サイトから...

Linuxファイルコマンドの使用

1. コマンドの紹介ファイル コマンドは、ファイルの種類を識別するために使用されます。ファイル チェ...

Centos7 で NIS を構成する詳細な手順

目次原理ネットワーク環境の準備インストール前の準備NIS サーバー操作NIS クライアント操作原理N...

Linux カーネル デバイス ドライバー システム コールに関する注意事項

/**************************** * システムコール**********...

Chrome プラグイン (拡張機能) 開発ガイド (完全デモ)

目次前面に書かれた序文ChromeプラグインとはChrome プラグイン開発を学ぶことの意義は何です...