| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「Django Fileアップロード例」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
1行目: 1行目:
 
==Django Fileアップロード例==
 
==Django Fileアップロード例==
[[Django][Python]]
+
[[Django]][[Python]]
 
===fileuptest/views.py===
 
===fileuptest/views.py===
 
  from django.http import HttpResponse
 
  from django.http import HttpResponse

2020年2月15日 (土) 08:19時点における版

Django Fileアップロード例

DjangoPython

fileuptest/views.py

from django.http import HttpResponse
from django.template import Context, loader
from django.forms import *

def index(request):
    msg = 
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            updir = r'c:\\website\\django\\mysite\\upload\\' + form.cleaned_data['title']
            destination = open(updir, 'wb+')
            upfile = request.FILES['file']
            for chunk in upfile.chunks():
                destination.write(chunk)
            destination.close()
            msg = 'Uploaded.'
    else:
        form = UploadFileForm()

    t = loader.get_template('fileuptest/index.html')
    c = Context()
    c['form'] = form
    c['msg'] = msg
    return HttpResponse(t.render(c))

class UploadFileForm(Form):
    title = CharField(max_length=50)
    file  = FileField()

template/fileuptest/index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <script type="text/javascript">
  </script>
</head>
<body>
  テンプレート:Msg
  <form enctype="multipart/form-data" action='/fileuptest/' method='POST'>
    <table>
    テンプレート:Form
    </table>    
    <input type='submit' value=" 添 付 ">
  </form>
</body>
</html>

結果

0385 fileup form01.jpg