Django 2.1.7 Admin管理後臺 - 註冊模型、自定義顯示列表字段python
Django 2.1.7 Admin - 列表頁選項mysql
Django 2.1.7 Admin - 重寫模板,自定義後臺數據庫
在Django中上傳圖片包括兩種方式:django
上傳圖片後,將圖片存儲在服務器上,而後將圖片的路徑存儲在表中。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。
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/下,以下圖: