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),只对一个组进行聚 ...
随机推荐
- CSS——nth-child()
nth-child()选择器:CSS3新属性 用法:p:nth-child(2) 选择p标签的父元素 的第二个子元素,并且这个子元素必须是p才起作用 有点绕,有点无厘头,举个栗子: <!DOCT ...
- ideaJ+maven+javaweb实践: sevlet实现upload&download,javaIO代码
因为工作的机器不让拷贝出来也不让发邮件出来也不让访问外网,所以文件两个PC挪来挪去很麻烦. 决定写一个网页,只有upload和download ideaJ,maven,java,tomcat 写一个j ...
- SCU-4437 Carries
https://blog.csdn.net/catglory/article/details/46539283 https://blog.csdn.net/u012127882/article/det ...
- python异步编程之asyncio(百万并发)
前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病.然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板,如最 ...
- shell脚本删除log日志
删除log文件简单shell脚本 经常会遇到日志把磁盘占满的情况,引起低级故障.我个人在实际工作中,尝试了如下的方法,比较简单,而且快捷有效. #!/bin/bash # /root/log_dele ...
- break #立即终止本次循环
#!/user/bin/python# -*- coding:utf-8 -*-# print(111)# while True:# print(222)# print(333)# break #立即 ...
- 剑指Offer_编程题_18
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...
- 《Apache Kafka 实战》读书笔记-认识Apache Kafka
<Apache Kafka 实战>读书笔记-认识Apache Kafka 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.kafka概要设计 kafka在设计初衷就是 ...
- Java中Sax解析XML
SAX基于事件的解析,解析器在一次读取XML文件中根据读取的数据产生相应的事件,由应用程序实现相应的事件处理逻辑,即它是一种“推”的解析方式:这种解析方法速度快.占用内存少,但是它需要应用程序自己处理 ...
- linux 内核模块makefile通用模板
ifneq ($(KERNELRELEASE),)# 在 mylist 后面添加需要编译的模块数量 mylist=hello.o a.o# 为每一个模块添加所需的文件 hello-objs := ma ...