이미지가 없는 웹사이트?
그리고 그 사실에도 불구하고 일부 개발자는 웹 사이트에 이미지를 추가하는 방법을 모릅니다.
django 관리자 패널을 사용하여 이를 수행하는 방법은 다음과 같습니다.
모델 클래스 이름 프로필을 사용합시다.
class Customer(models.Model):
user = models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE)
name = models.CharField(max_length=200, null=True)
email = models.CharField(max_length=200)
가장 먼저 해야 할 일은 클래스에 이미지 필드를 추가하는 것입니다.
image = models.ImageField(null=True, blank=True)
필로우 패키지를 추가해야 합니다. Python Imaging Library는 광범위한 이미지 파일 유형에 액세스, 처리 및 저장하는 지원을 추가하는 Python용 무료 오픈 소스 확장 라이브러리입니다.
이 명령을 실행하여 베개 패키지를 설치할 수 있습니다.
pip install pillow
마이그레이션을 실행하여 데이터베이스에 데이터를 추가하여 진행할 수 있습니다.
python manage.py makemigrations
python manage.py migrate
다음 단계는 미디어 URL과 루트를 업데이트하는 것입니다. 이렇게 함으로써 django에게 이미지를 저장할 위치를 알려줍니다. 이것을 settings.py 파일에 추가해야 합니다.
MEDIA_URL = '/images/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/images')
사이트의 urls.py 파일로 이동하여 일부 패키지를 가져와야 합니다.
from django.conf.urls.static import static
from django.conf import settings
이것이 어떻게 생겼는지입니다.
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
path(' ', include('store.urls')),
]
그런 다음 이것을 urls.py 파일에 추가합니다. 이것은 이미지에 대한 경로를 추가하는 것입니다.
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
그런 다음 django 관리자 패널을 사용하여 이미지를 업로드할 수 있습니다.
마지막으로 html 파일에 이미지를 렌더링할 수 있습니다.
<img class="thumbnail" src="{{profile.image.url}}">
보너스 팁
이미지가 삭제되거나 누락된 경우 어떻게 합니까? 우리는 전체 웹사이트가 갑자기 작동을 멈추는 것을 원하지 않습니다.
이 오류를 해결하는 방법에는 두 가지가 있습니다.
1. 모델 클래스에 속성 데코레이터 추가
@property
def imageURL(self):
try:
url = self.image.url
execpt:
url = ""
return url
2. IF 문 사용
{% if product.image %}
<img class="thumbnail" src="{{profile.image.url}}">
{% else %}
<img class="thumbnail" src="{% static 'images/placeholder. png %}">
{% endif %}
Reference
이 문제에 관하여(이미지가 없는 웹사이트?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/okonkwomandy/website-without-images-39hp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)