django html图片上传,Django html file upload 上传图片

html file upload 上传图片

第一步: 这是一个上传图片的按钮

 {% csrf_token %}

图片

上面这个按钮的将会把你选择本地的图片发送到 create_article  这个url条目中处理。

第二步:create_article这个url条目将交给下面views.py的内容处理

def create_article(request):

if request.method == "GET" :

return  render(request,'create_aritcle.html')

elif request.method == "POST" :

print request.POST

print '----------'

print request.FILES       ##查看上传图片的路径

bbs_generater = utils.ArticleGen(request)

res = bbs_generater.create()

html_ele ="""

Your article < %s> has been created successfully !!!,

""" %(res.id, res.title)

return HttpResponse(html_ele)

第三步:上面的utils 模版内容如下:

#!/usr/bin/python

# -*- coding: utf-8 -*-

__author__ = 'gaogd'

import  os

import  models

from s10day12bbs import settings

class ArticleGen(object):

def __init__(self,request):

self.requset = request

def parse_data(self):

form_data = {

'title' : self.requset.POST.get('title'),

'content' : self.requset.POST.get('content'),

'summary' : self.requset.POST.get('summary'),

'author_id'  : self.requset.user.userprofile.id,

'head_img': '',

'category_id' : 1          ##这里应该是用户选择的才对

}

return form_data

def create(self):

self.data = self.parse_data()

bbs_obj = models.Article(**self.data)

bbs_obj.save()

filename = handle_upload_file(self.requset,self.requset.FILES['head_img'])  #获取图片路径并保存到数据库

bbs_obj.head_img = filename

bbs_obj.save()

return bbs_obj

def update(self):

pass

def handle_upload_file(request, file_obj):

upload_dir = '%s/%s' % (settings.BASE_DIR, settings.FileUploadDir)

if not os.path.isdir(upload_dir):

os.mkdir(upload_dir)

print  '---->', dir(file_obj)

with open('%s/%s' % (upload_dir, file_obj.name), 'wb') as destination:

for chunk in file_obj.chunks():

destination.write(chunk)

return file_obj.name

第二步:查看上传图片的路径

requset.FILES['head_img']

request.FILES       ##查看上传图片的路径

第三步: 获取图片路径并保存到数据库。

##这个是图片处理的重点

def handle_upload_file(request, file_obj):

upload_dir = '%s/%s' % (settings.BASE_DIR, settings.FileUploadDir)

if not os.path.isdir(upload_dir):

os.mkdir(upload_dir)

print  '---->', dir(file_obj)

with open('%s/%s' % (upload_dir, file_obj.name), 'wb') as destination:

for chunk in file_obj.chunks():

destination.write(chunk)

return file_obj.name

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值