📌  相关文章
📜  如何在 Django 中加载和使用静态文件?

📅  最后修改于: 2022-05-13 01:54:42.765000             🧑  作者: Mango

如何在 Django 中加载和使用静态文件?

静态文件(例如图像、CSS 或 JS 文件)通常通过生产网站中的不同应用程序加载,以避免从同一服务器加载多个内容。本文围绕如何在 Django 和服务器静态文件中设置静态应用程序展开。

如何在 Django 中创建静态应用程序?

让我们先创建一个新项目,让我们先创建一个虚拟环境。如果您还没有下载软件包,请下载它

pip install virtualenv
virtualenv geeks
geeks\Scripts\Activate

这就是它的外观

现在安装 Django



pip install django

现在我们将创建名为“ checkstatic”的 django 项目

//django-admin startproject projectname (template code)
django-admin startproject  checkstatic

现在输入您的项目

对于 Windows “cd checkstatic”

现在我们将为项目创建一个新的应用程序名称“ showstatic”

//python3 manage.py startapp appname (template code)
python3 manage.py startapp showstatic

现在我们将进入 IDE,如果您在 cmd 中使用相同的类型(代码 .),我将使用 Visual Studio 代码

我们要做的第一件事是在 setting.py 中在第 32 行中添加您的应用程序,像这样添加(您将从应用程序的 apps.py 文件中看到这一点)

INSTALLED_APPS = [
'showstatic.apps.ShowstaticConfig',
'django.contrib.admin',
'django.contrib.auth,
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

现在尝试一次RUNSERVER,以确认一切工作顺利

python3 manage.py runserver

如果您看到此页面,恭喜您成功迈出了第一步



现在我们在主文件夹(checkstatic)中创建一个静态文件夹,我们将在其中保存我们的静态文件。您可以在静态文件夹中添加您的文件(pdf、图像、文本文件或任何您想要的文件)。

文件夹结构——

现在你需要让 Django 知道你已经创建了一个静态文件夹,所以现在在settings.py 文件中添加这一行,

在 STATIC_URL 下方的第 121行 = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

现在告诉 django 查看你添加的静态文件的位置,在上面写STATIC_URL = '/static/'

STATICFILES_DIRS = [
   os.path.join(BASE_DIR, 'checkstatic/static/')
]

现在我们将编写一个命令,该命令将从我们的项目中获取/收集所有静态文件并将其放到一个文件夹中

python manage.py collectstatic

如果一切正常,这就是它的外观,大多数文件来自管理员,我们无需担心,

在您的项目文件夹中,您将看到添加了一个名为“static”的新文件夹,您的文件就在其中!!

如何在 Django 中加载和使用静态文件?

现在检查只在showstatic中创建“templates”文件夹并创建一个文件home.html来查看我们的静态文件

{% load static %}


Hi its working

现在要查看这个页面,我们需要给它一个路由,所以现在只需在checkstatic 的 url.py 中添加它

from django.contrib import admin
from django.urls import path
from showstatic import views
urlpatterns = [
   path('admin/', admin.site.urls),
   path('',views.home,name='home'),
]

并在showstatic 的 views.py 中添加这个

def home(request):
   return render(request,'home.html')

现在运行服务器并查看

python3 manage.py runserver

宾果它的工作!