Python Django:为什么我在setttings.py和url.py中需要这些

Python Django:为什么我在setttings.py和url.py中需要这些,python,django,Python,Django,我正在观看制作视频订阅网站的在线教程,不知何故,这些代码应该出现在我的settings.py中: STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static_root'), ] VENV_PATH = os.path.dirname(BASE_DIR) STATIC_ROOT = os.path.join(BASE_DIR, 'static/') MEDIA_URL = '/media/' MED

我正在观看制作视频订阅网站的在线教程,不知何故,这些代码应该出现在我的settings.py中:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static_root'),
]
VENV_PATH = os.path.dirname(BASE_DIR)
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(VENV_PATH, 'media_root')
在my URL.py中,这些代码也会出现

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我是django和python的初学者,谁能解释一下我为什么需要这些代码吗?

django的静态文件是所有指定网站“外观”的文件(css和js文件以及图像)。从Django的官方网站上查看这部分内容。媒体URL部分是关于存储和服务用户上传的图像的;但是要小心,这只在开发期间有效(DEBUG=True),不适合生产使用。请参阅,了解如何在部署期间为静态文件提供服务

因此,您在该代码中指定的是Django在加载所有图像、js和css文件时应该查找的位置,因为您正在开发中。

static(settings.static\u URL,document\u root=settings.static\u root)
可能没有必要-查看

静态(settings.MEDIA\u URL,document\u root=settings.MEDIA\u root)
是显示开发中的媒体文件所必需的。您不应该在生产中使用它,因为它需要
设置。DEBUG
才能为true。在生产中,您应该将web服务器配置为直接提供静态和媒体文件。例如,在Nginx中,您可以在配置文件中定义
location/static
location/media


查看以了解更多详细信息。

告诉Django在哪里可以找到静态(css、js)文件和用户上传的文件(媒体)