您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關django顯示圖片的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Django顯示圖片的方式
1、圖片所在文件夾位于項目的根目錄:dj/image/1.jpg
這時可以在setting.py文件中加上如下代碼:
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), os.path.join(BASE_DIR), #BASE_DIR是項目跟目錄 ]
STATIC_URI=’/static/'的作用是當鏈接中含有/static/時,鏈接后面的文件django會在各個app中的static 文件夾中查找對應的文件,而STATICFILES_DIRS的作用是,在app中沒有找到對應的文件時也會在其指定的目錄下去尋找文件。因此我們要訪問 www.123.com/static/image/1.jpg 時,django除了在app下的static文件夾尋找,還會在 dj/static/ 和dj/下尋找。
2、
re_path(r'^image/(?P<path>.*)$', serve, {'document_root': os.path.join(BASE_DIR, 'image')})
dj2.0以后普通的url直接使用path寫就可以,不用使用正則。而想用正則時,則要使用re_path ,否則正則不生效。serve 是from django.views.static import serve 從這導入的。當訪問 www.123.com/image/1.jpg 時,dj就會在dj/image下查找文件。這個url匹配既可以寫在項目的urls.py中,也可以寫在各app的urls.py中。第二種方法的好處就是可以將文件存在任何地方,而且文件的url也不要求是統一的。如果使用第一種方法,則所有靜態文件的url都必須以‘static’開頭。
由于在實際項目中,圖片類的文件都是存儲在第三方服務器上,所有在html中要生成絕對路徑,在model中定義的ImageField字段中,自動含有一個url屬性,這個屬性可以根據setting文件中的MEDIA_URL的值生成一個絕對路徑。,如果沒有設置這個值,則還是相對路徑,如果你的圖片又不在本地服務器,那就訪問不到了。
保證圖片等文件的路徑一定是以/static/開頭,則可以將文件保存在各app中的static文件夾中,或者你自己定義一個目錄,并將這個目錄添加到STATICFILES_DIRS,在html中設置url時要使用模板的
可以將文件存到任何位置,在url匹配中,使用re_path(r’^/(?P.*)$’, serve, {‘document_root’: os.path.join(BASE_DIR, ‘image’)}) 也可以訪問到圖片資源。
在html中圖片的地址可以使用相對地址,也可以使用絕對地址,image.url可以使用setting中的MEDIA_URL拼接出一個絕對路徑。
關于django顯示圖片的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。