Django 2 1 7 上傳圖片 Admin後臺管理

Django 2.1.7 Admin管理後臺文章

Django 2.1.7 Admin管理後臺 - 註冊模型、自定義顯示列表字段python

Django 2.1.7 Admin - 列表頁選項mysql

Django 2.1.7 Admin - 編輯頁選項sql

Django 2.1.7 Admin - 重寫模板,自定義後臺數據庫

上傳圖片

在Django中上傳圖片包括兩種方式:django

  • 在管理頁面admin中上傳圖片
  • 自定義form表單中上傳圖片

上傳圖片後,將圖片存儲在服務器上,而後將圖片的路徑存儲在表中。bash

建立包含圖片的模型類

將模型類的屬性定義成models.ImageField類型。服務器

1)打開assetinfo/models.py文件,定義模型類PicTest。ui

class PicTest(models.Model):
    pic = models.ImageField(upload_to='assetinfo/')
複製代碼

2)回到命令行中,生成遷移。spa

python3 manage.py makemigrations
python3 manage.py migrate
複製代碼

3)遷移以後,在mysql中查看錶結構。命令行

mysql> desc assetinfo_pictest;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| pic   | varchar(100) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> 
複製代碼

4)打開mysite/settings.py文件,設置圖片保存路徑。

由於圖片也屬於靜態文件,因此保存到static目錄下。

MEDIA_ROOT=os.path.join(BASE_DIR,'static/media')
複製代碼

5)在static目錄下建立media目錄,再建立應用名稱的目錄,此例爲assetinfo。

在管理頁面admin中上傳圖片

1)打開assetinfo/admin.py文件,註冊PicTest。

from django.contrib import admin
from .models import *

admin.site.register(PicTest)
複製代碼

2)運行服務器,輸入以下網址。 http://127.0.0.1:8000/admin/

3)點擊「Add」添加數據,打開新頁面。

4)選擇圖片,點擊「save」按鈕完成圖片上傳。

5)回到數據庫命令行,查詢表pictest中的數據以下圖:

mysql> select * from assetinfo_pictest;
+----+-----------------+
| id | pic             |
+----+-----------------+
|  1 | assetinfo/1.png |
+----+-----------------+
1 row in set (0.00 sec)

mysql> 
複製代碼

6)圖片被保存到目錄static/media/assetinfo/下,以下圖:

相關文章
相關標籤/搜索