VS2019 開發Django(六)------Admin中圖片上傳


導航:VS2019開發Django系列

 

該篇繼續完善在Django的管理界面上傳圖片,因為LazyOrders小程序中菜單需要展示圖片,而不是一個文本路徑,所以我們還需要繼續改造一下。

1)安裝pillow

cmd切到虛擬環境的安裝目錄,然后輸入如下命令回車:

pip install Pillow

2)在settings.py中增加存放圖片文件的根目錄:這個路徑可以隨便給的,文件夾不存在,程序會自動創建

MEDIA_ROOT =r"C:\Users\wei\Desktop\Python\static\media" #os.path.join(BASE_DIR,'static/media')

3)在Menu中新增加字段img_file = models.ImageField(upload_to='images/')

#菜單表
class Menu(models.Model):
    menu_id = models.AutoField(primary_key=True,verbose_name='菜單ID')
    category = models.ForeignKey(Category,on_delete=models.CASCADE)
    menu_name = models.CharField(max_length=50,verbose_name='菜單名')
    img_path = models.CharField(max_length=100,verbose_name='圖片路徑',default='')
    img_file = models.ImageField(upload_to='images/')
    price = models.DecimalField(max_digits=5, decimal_places=2,verbose_name='價格')
    def __str__(self):
        return self.menu_name
    class Meta:
        verbose_name_plural = '菜單'

4)遷移數據,因為之前我們已經添加了一些數據,在遷移過程中,因為是新增加字段,那么,已經有的數據,這個字段需要填充一個值,如果當時創建實體的時候沒有給默認值,那么就會提示你要給默認值,當然我們也可以把表全部刪了,然后找到數據遷移這個目錄:D:\項目\local\DjangoLazyOrders\hello\migrations,然后把0001_initial.py文件刪了,一切重新來。

5)測試,遷移成功之后,就可以測試了,保存成功之后,我們查看路徑下已經有了我們剛剛選擇上傳的圖片文件。

 到這里,功能基本完成了,當然要直接作為微信小程序的管理端使用,還需要改造一下Api.WeiXin.LazyOrders這個Web Api接口,數據需要從數據庫中獲取,圖片的獲取需要與這個Django項目使用同一個文件夾。關於圖片這里,最穩妥的方式是Web Api開放一個接口用來提供給Django項目上傳圖片,這樣就不用要求必須部署在同一台服務器上了,這一塊的優化,暫且放到后面,先不動這個Api項目,把Django的相關內容學習完,再來調整。

下一篇,繼續學習Django中的視圖,模板,使用bootstrap來布局UI,然后到表單的提交,實現增刪查改....待續....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM