python - 在网站中显示上传的图片 - Django
问题描述
我一直在尝试在我的 html 页面中显示我的图像,我确实做到了,但它不起作用他们告诉我这样做,但它不起作用图像在我的 html 模板中不起作用
希望任何人都可以帮助我谢谢
管理员.py
from django.contrib import admin
# Register your models here.
from .models import *
admin.site.register(slideshowgo)
设置.py
STATIC_URL = '/static/'
MEDIA_URL = '/images/'
STATICFILES_DIRS = [
BASE_DIR / 'static',
]
MEDIA_ROOT = BASE_DIR / 'static/images'
模型.py
from django.db import models
class slideshowgo(models.Model):
image_one = models.ImageField(null=True,blank=True)
幻灯片html
<div class="slide">
<img class="mySlides imgslide" src="{{slideshowgo.image_one.url}}">
</div>
网址.py
from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('card_store.url')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
解决方案
在 settings.py 中放入以下配置
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
在您的主 urls.py 文件中(与 settings.py 位于同一应用程序中的文件)
添加这个
from django.conf.urls.static import static
from django.conf import settings
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这将适用于 DEBUG = True 对于 DEBUG = False 它不会因为 Django 不能自己服务器媒体文件,所以你需要设置 NGINX 或 APACHE。
一种解决方法是将以下 URL 放在您的主 urls.py 中(不推荐用于生产)
re_path(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
re_path(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),
推荐阅读
- php - 如何从mysql数据库中排除'0000-00-00'到下拉列表中的最小日期
- java - 使用 TableRowSorter 时遇到问题,如何修复 ArrayIndexOutOfBoundsException?
- passenger - 乘客没有启动但没有真正看到错误
- docker - 在远程主机上启动容器时挂起
- google-apps-script - getSheetByName 似乎得到了任何活动表
- regex - 用于格式化 Rsyslog 日志以使用 Arcsight 模板的 RegEx
- java - 带有 Scala 的 Lombok @EqualsAndHashCode - 案例类不能继承 Java 类
- python - 将 UTC 时间转换为纪元格式
- javascript - 从嵌套的 forEach 循环中的最后一个结果中删除逗号
- php - SQLSTATE[HY000] [1045] 共享主机中的用户访问被拒绝