导读:今天首席CTO笔记来给各位分享关于djangoimg怎么用的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
django框架页面上传图片三个注意的写法
在django里图片上传里,分为两种一种是在django的后台上传图片,以数据库的方式上传,另一种是在html页面以表单的方式上传
首先要先安装下这个包 pip install Pillow==3.4.1
setting里需要设置 上传的路径
MEDIA_ROOT=os.path.join(BASE_DIR,'static/media')
在model里要配置数据库
class PicTest(models.Model):
pic=models.ImageField(upload_to='booktest')
数据库里要有这个字段
在html 要写input type=’file’ 这个字段
在view里要写逻辑
还有涉及到要操作setting里的文件 需要导入设置的包
from django.conf import settings
import os
上传的图片都是保存在 /static/media/booktest/
接受提交的数据写到文件里
然后对提交的数据路径保存到 数据库里
在显示图片的时候 view.py get得到数据库里的路径地址
这里要注意 要是使用的all的方式获取的话 在html里就需要使用循环的方式来显示图片
然后在html img url= "/static/media/{{p.pic}}
第一种以django后台的方式提交! 这种用的不多,在这里也简单说一下
django上传图片并且带有预览功能
就用uploadfy呗,JS中在返回成功之后你自己在HTML中写个img标签,把返回的URL丢到IMG里不就完了,我们也用这个插件,还不错
django imagefield 如何去除clear
1、在settings.py文件加配置:
MEDIA_ROOT = ‘media/’
MEDIA_URL = ‘media/’
【记住,只用settings.py里这样设置就可以了,别人的案例中还要设置url,我不知道为什么,但是我的url里没有特殊设置喔】
2、在models里的定义:
class ImageStore(models.Model):
name = models.CharField(max_length=150,null=True)
img = models.ImageField(upload_to='img')
class Meta:
db_table = 'ImageStore'
【这里的upload_to的设置会自动在media文件夹下创建这样一个文件夹,即该值你可以自己任意设置】
3、获取前台请求:
from django.core.files.base import ContentFile
def getImg(request):
file_content = ContentFile(request.FILES['img'].read())
img = ImageStore(name = request.FILES['img'].name, img =
request.FILES['img'])
img.save()
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
【这里的img是个对象实例,而你在真正要用到图片的实例的时候,应该这样写:img.img.url、img.img.name,因为model里,img字段是个文件对象,而不是个字符串,所以,对model里的img属性应当像对一个对象一样的拿取】
4、查看数据库结果:
这里写图片描述
5、当图片上传成功了之后,项目文件下会添加一个media的文件夹,并且图片也会自动放在该文件夹下upload_to设置的文件夹路径下:
这里写图片描述
python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件
在Django项目开发中,不能像正常web开发一样通过 'imgs/bg.jpg' 访问本地静态文件,需要做一些配置,才能实现静态文件的访问。
一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。
二、项目配置
1、打开settings.py,在底部添加:
2、打开urls.py,在 urlpatterns 中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了import settings):
(不过我经过实测,不加这一个,也可以完成静态文件的访问)
3、在html模板最上面添加:
然后在需要的地方按照这个格式进行调用,如:
最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。
django 1.9 怎么配置静态文件
想把以前的一个asp.net网站移植到django上,发现django对静态资源似乎支持的不好,不能直接根据相对路径查找,要做一些配置,找了很多解决方案,整理如下:
1、django对静态资源的配置是跟版本有关的!!!切记!!!1.3以前的和以后的配置不太一样!!!下面仅针对Django1.9;
2、settings.py中的installed
apps
要包含'django.contrib.staticfiles';
3、settings.py中的STATIC_URL就是app目录下的静态文件所在文件夹的相对路径,默认为/static/,可以自定义;
4、调用时用如下形式:
{%
load
static
%}
img
src="{%
static
"my_app/myexample.jpg"
%}"
alt="My
image"/
导入js,img等静态文件后报错:
File
"D:\Python27\lib\mimetypes.py",
line
249,
in
enum_types
ctype
=
ctype.encode(default_encoding)
#
omit
in
3.x!
UnicodeDecodeError:
'ascii'
codec
can't
decode
byte
0xb0
in
position
1:
ordinal
not
in
range(128)
[27/Dec/2015
15:26:32]
"GET
/static/assets/img/nextPage_small_grey.jpg
HTTP/1.1"
500
59
找到关键报错文件mimetypes.py,百度了一下,找到了解决方案:在Python安装目录下的lib/site-packages中添加一个文件sitecustomize.py,内容为
import
sys
sys.setdefaultencoding("cp1251")
我设置的编码格式为utf-8,不知道其他格式是否也可以。重启运行,成功。
结语:以上就是首席CTO笔记为大家介绍的关于djangoimg怎么用的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。