前置步骤

setting.py文件配置:

  添加app目录

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
]

  添加media文件和路径

PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname('__file__')))
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

app目录下models.py配置

from django.db import models

# Create your models here.

class Test(models.Model):
name = models.CharField(max_length=50)
image = models.ImageField(upload_to='logo/')

注意:

  ImageField() 依赖 Pillow (pip install Pillow)

  这里login是目录路径 完整的路径是 /media/logo/图片

这里图片可以通过Django admin后台直接添加

所有设置一下app里 admin.py文件

from django.contrib import admin
from app01.models import Test # Register your models here. admin.site.register(Test)

引入models 中的Test类  然后 admin.site.register(Test)

接着加载数据库 写入数据库

创建超级用户

然后就是正常的Django访问配置了:

urls.py配置

注意!!! 这里必须要添加static 目录,后端通过传递/media/logo/图片,而这里是将图片传递到前端浏览器,这样才能访问路径的图片

from django.contrib import admin
from django.urls import path
from app01 import views
from django.conf.urls import url
from django.conf import settings
from django.conf.urls.static import static urlpatterns = [
path('admin/', admin.site.urls),
url(r'index/', views.index),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

views.py配置

from django.shortcuts import render,HttpResponse
from app01 import models # Create your views here. def index(request):
img = models.Test.objects.all()
# img = models.Test.objects.filter(id=1)[0].image.url
return render(request,'index.html',{'img':img})

从数据库中读取图片路径 然后传递到前端页面.

前端页面:

后台传递的若是: img = models.Test.objects.all()
前端则是:
<body>
{% for i in img %}
<img src="{{ i.image.url}}">
{% endfor %}
</body>
后台传递的若是:img = models.Test.objects.filter(id=1)[0].image.url
前端则是:
<body>
{{ img }}
</body>

测试:

添加图片以后再 访问index页面

Django学习手册 - ORM - ImageField数据类型的更多相关文章

  1. Django学习手册 - ORM数据类型

    DOM 字段/参数 配置格式: Module.字段(参数) 常用的字段归纳: 数字 models.AutoField() 自增列(int),必须设置为主键 models.IntegerField() ...

  2. Django学习手册 - ORM 数据创建/表操作 汇总

    ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它 ...

  3. Django学习手册 - ORM 多对多表

    定义表结构: class Host(models.Model): hostname = models.CharField(max_length=32) port = models.IntegerFie ...

  4. django 学习手册 - ORM 报错集(随时更新)

    报错问题: 问题一:(1050代码) django.db.utils.InternalError: (1050, "Table 'app01_group' already exists&qu ...

  5. Django学习手册 - ORM 外键

    Django 外键创建 关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_dele ...

  6. Django学习手册 - ORM 单表数据获取

    Django 单表数据的获取: 先建立数据表格 from django.db import models # Create your models here. class userinfo(model ...

  7. Django学习手册 - ORM sqlit基础数据库操作

    步骤阐述:( splitDB 是Django自带的一个数据库) 1.在APP01 中的 models.py 配置DB信息  userinfo 相当于数据表的表名,而 uname.pwd 相当于 表中的 ...

  8. Django学习手册 - ORM choice字段 如何在页面上显示值

    在module操作过程中使用choice字段: 核心: obj.get_字段名_display 定义module 数据结构: class msg(models.Model): choice = ( ( ...

  9. Django 学习 之ORM聚合查询分组查询与F查询与Q查询

    一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚 ...

随机推荐

  1. opencv: 基本知识(二);

    1.Mat与IplImage之间的相互转换: //IplImage—>Mat //EXAMPLE: //浅拷贝: IplImage* pBinary=cvLoadImage("c:// ...

  2. day15-ajax和jquery

    回顾: 分页: 将数据按照页码划分,提高用户的体验度. 分类: 逻辑分页:一次性将内容加载到内存(list),获取自己想要的数据 sublist截取.缺点:维护起来麻烦 物理分页:(经常使用) 每次只 ...

  3. Linux如何查看机器的配置信息

    Linux如何查看机器的配置信息 1.查看内存信息 cat /proc/meminfo [root@web ~]# cat /proc/meminfo MemTotal: kB MemFree: kB ...

  4. urllib 学习一

    说明:Urllib 是一个python用于操作URL的模块   python2.x    ----> Urillib/Urllib2 python3.x    ----> Urllib  ...

  5. awk 处理文本:行转列,列转行

    [root@centos ~]# cat f 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 51 2 3 4 5 awk '{for(i=1;i<=NF;i++)a ...

  6. MySql笔记一:安装MySql

    MySql第一次安装之后,一定会报错,我遇到了十几种不同的错误,搜来搜去也没有搜出个结果.于是我重新卸载了MySql,卸载干净之后,下载MSI格式的MySql安装包,安装完之后,还是报错,如下图... ...

  7. JAVA核心技术I---JAVA基础知识(static关键字)

    一:static特殊关键字用处 –变量 –方法 –类 –匿名方法 二:静态变量:类共有成员 –static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在. –所有的对象实例,对于静态变量都 ...

  8. plus初始化原理及plus is not defined,mui is not defined 错误汇总

    原文 关于plus是哪里来的问题 plus是5+Runtime的内部对象.就像chrome浏览器里有chrome.开头的一些对象方法,5+runtime内部内置了plus对象.因为plus和mui不一 ...

  9. minio golang client使用

    初始化 var ( endpoint = "127.0.0.1:8888" accessKeyID = "YXU5IXETKKPX171K4Z6O" secre ...

  10. 【leetcode-100】 简单 树相关题目

    100. 相同的树 (1过,熟练) 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 ...