当前位置: 代码迷 >> 综合 >> django 1.97 路径正确,数据库图片不显示的解决方案
  详细解决方案

django 1.97 路径正确,数据库图片不显示的解决方案

热度:120   发布时间:2023-10-23 16:06:12.0

怎么调试也调试不好,路径正确但数据库的图片不能正常显示。找了好久 才知道问题在哪,以及解决方案。

bug 原因: 很有可能是路径问题导致的图片不显示。 所以解决方案是  首先更改  settings.py里的设置  

在STATICFILES_DIRS 里面添加 上传文件夹地址(media1001,换成你自己的  就可以了)

 
 

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')MEDIA_ROOT = 'media1001/'
MEDIA_URL = '/media1001/'

STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),
    #os.path.join(BASE_DIR, "media1001"),
    "media1001"
]
然后其他的地方就不用更改了,直接可以在前端调用了。但是为了更详细些,下面会把其他的一起贴出来
首先是 models
#产品
class Product(models.Model):title = models.TextField(u'型号')content = models.ImageField(u'图片',upload_to='uploadImages')price = models. BigIntegerField(u'价格')pub_date = models.DateTimeField(u'时间', auto_now_add=True, editable=True)def __unicode__(self):return self.title

然后是  视图   这里面添加了分页功能
def product(request):#产品
    contact_list = Product.objects.all()paginator = Paginator(contact_list, 2)  # Show 25 contacts per page

    page = request.GET.get('page')try:contacts = paginator.page(page)except PageNotAnInteger:# If page is not an integer, deliver first page.
        contacts = paginator.page(1)except EmptyPage:# If page is out of range (e.g. 9999), deliver last page of results.
        contacts = paginator.page(paginator.num_pages)return render(request, 'product.html', {
   'contacts': contacts})

然后前端调用就可以了 
{% for contact in contacts %}{# Each "contact" is a Contact model object. #}<div>
        <img style="width:100px; height:100px" src="{% static contact.content  %}">
        {
   {contact.title}}{
   {contact.price}}</div>
{% endfor %}<div class="pagination">
    <span class="step-links">
        {% if contacts.has_previous %}<a href="?page={
    { contacts.previous_page_number }}">previous</a>
        {% endif %}<span class="current">
            Page {
   { contacts.number }} of {
   { contacts.paginator.num_pages }}.</span>

        {% if contacts.has_next %}<a href="?page={
    { contacts.next_page_number }}">next</a>
        {% endif %}</span>
</div>

 
 
 
 

  相关解决方案