1. 程式人生 > >[Django 2.0] 自定義靜態資料夾與路徑

[Django 2.0] 自定義靜態資料夾與路徑

今天做部落格的時候對於靜態檔案以及路徑問題有過些疑惑。解決後做一下心得和記錄。

在應用設定中,有些靜態的檔案不想放在專案的 static 資料夾中。

1.建立文章物件

class Arctics(models.Model):
    title = models.CharField(max_length=200)
    arctic = models.TextField(max_length=100000)
    # 設定預設圖路徑 和 上傳檔案的路徑
    image = models.ImageField(default="Blog/static/default.png", upload_to="Blog/static/image")
    #設定專案在後臺的顯示
    def __str__(self):
        return self.title

2.自定義靜態檔案路徑

# 在 settings.py 中設定

BLOG_URL = '/Blog/'
BLOG_ROOT = os.path.join(BASE_DIR, 'Blog')

3.分離專案與應用的urls

#專案層的urls.py:
urlpatterns = [
    path('', views.Index),
    path('admin/', admin.site.urls),
    path('blog/', include('Blog.urls')),
]

#應用層的urls.py:
urlpatterns = [
    path('',views.BlogIndex),
]

4.前往應用層的urls.py檔案下, 新增靜態資料夾的urls 和根目錄

# 在 urls.py 中設定 靜態資料夾的路徑url和的根目錄

from django.conf.urls.static import static
from django.conf import settings
urlpatterns += static(settings.BLOG_URL,document_root=settings.BLOG_ROOT)

5.執行Django專案,輸入一個不完整的應用路徑,可以看到新的檔案路徑:

blog/ ^Blog\/(?P<path>.*)$ 

以上是個人一些試驗的理解和應用,如有不妥的地方,歡迎各位補充。