Django html file upload 이미지 업로드
html file upload
:
{% csrf_token %}그림
위의 이 단추는 로컬 그림을 선택하여create 에 보냅니다.article 이 URL 항목에서 처리합니다.
2단계:createarticle 이 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)
3단계: 위의 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
2단계: 이미지를 업로드하는 경로 보기
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.