該篇繼續完善在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,然后到表單的提交,實現增刪查改....待續....