Django学习手册 - ORM - ImageField数据类型
前置步骤
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数据类型的更多相关文章
- Django学习手册 - ORM数据类型
DOM 字段/参数 配置格式: Module.字段(参数) 常用的字段归纳: 数字 models.AutoField() 自增列(int),必须设置为主键 models.IntegerField() ...
- Django学习手册 - ORM 数据创建/表操作 汇总
ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它 ...
- Django学习手册 - ORM 多对多表
定义表结构: class Host(models.Model): hostname = models.CharField(max_length=32) port = models.IntegerFie ...
- django 学习手册 - ORM 报错集(随时更新)
报错问题: 问题一:(1050代码) django.db.utils.InternalError: (1050, "Table 'app01_group' already exists&qu ...
- Django学习手册 - ORM 外键
Django 外键创建 关键语法: models.ForeignKey("UserGroup",to_field="gid",default=1,on_dele ...
- Django学习手册 - ORM 单表数据获取
Django 单表数据的获取: 先建立数据表格 from django.db import models # Create your models here. class userinfo(model ...
- Django学习手册 - ORM sqlit基础数据库操作
步骤阐述:( splitDB 是Django自带的一个数据库) 1.在APP01 中的 models.py 配置DB信息 userinfo 相当于数据表的表名,而 uname.pwd 相当于 表中的 ...
- Django学习手册 - ORM choice字段 如何在页面上显示值
在module操作过程中使用choice字段: 核心: obj.get_字段名_display 定义module 数据结构: class msg(models.Model): choice = ( ( ...
- Django 学习 之ORM聚合查询分组查询与F查询与Q查询
一.聚合查询和分组查询 1.聚合查询aggregate 关于数据表的数据请见上一篇:Django 学习 之ORM多表操作(点我) aggregate(*args, **kwargs),只对一个组进行聚 ...
随机推荐
- Solr7.1--- 单机Linux环境搭建
应网友的要求,写个关于Linux单机的 首先,把MySQL驱动包和solr7.1安装包上传到服务器,我上传到了自定义的目录/mysoft 执行服务安装脚本 1. 先切换到root用户 2. 解压出脚本 ...
- Codeforces Round #529 (Div. 3) F.Make It Connected
传送门 题意: 有 n 个顶点,每个顶点有个花费 a[ i ],连接顶点 u,v 需要花费 a[v]+a[u]的代价. 有 m 个特殊边,每条边有三个参数 u,v,w 代表的意思是连接 u,v 的花费 ...
- JDBC 增、改、删 MySQL中的表
在数据库test里先创建表school,内容如下 通过JDBC增加第五人tom,修改他的生日,最后删除tom import java.sql.Connection; import java.sql.D ...
- go context
Context 使用原则 1.不要把Context放在结构体中,要以参数的方式传递 2.以Context作为参数的函数方法,应该把Context作为第一个参数,放在第一位. 3.给一个函数方法传递Co ...
- 6-(基础入门篇)学会编译lua固件,固件的合成
http://www.cnblogs.com/yangfengwu/p/9336274.html 基础教程源码链接请在淘宝介绍中下载,由于链接很容易失效,如果失效请联系卖家,谢谢 https://it ...
- zookeeper的搭建和简单的使用
一.什么是zookeeper,有什么用 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据 ...
- Spring 在 xml配置文件 或 annotation 注解中 运用Spring EL表达式
Spring EL 一:在Spring xml 配置文件中运用 Spring EL Spring EL 采用 #{Sp Expression Language} 即 #{spring表达式} ...
- struct sock注释
针对 struct sock 的一些注释: struct sock { /* Socket demultiplex comparisons on incoming packets. */ __u32 ...
- Linux记录-salt分析
salt-master建立分组 如dn: 'L@dnxxx,dyyy' salt -N dn state.apply hadoop test=true salt -N dn cmd.run ' ...
- 【leetcode-100】 简单 树相关题目
100. 相同的树 (1过,熟练) 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / \ 2 ...