文件上传:
1.
node2:/django/mysite/news#cat ../mysite/urls.py
"""mysite URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import include,url
from django.contrib import admin
from blog import views as view
from news import views as newview
urlpatterns =(
url(r'^admin/', admin.site.urls),
url(r'^blog/$',view.archive),
url(r'^articles/',include("news.urls")),
url(r'^upload/$',newview.upload,name='upload'),
)
2.
node2:/django/mysite/news#cat views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
from django.shortcuts import render,render_to_response
from .models import Article
from django.http import HttpResponse, HttpResponseNotFound
import datetime
from django.views.decorators.http import require_http_methods,require_GET
from django.http import HttpResponseRedirect
from django.shortcuts import render
import os
@require_GET
def my_view(request):
# ...
return HttpResponse(status=201)
def upload(request):
if request.method=="POST":
handle_upload_file(request.FILES['file'],str(request.FILES['file']))
return HttpResponse('Successful') #此处简单返回一个成功的消息,在实际应用中可以返回到指定的页面中
return render_to_response('upload.html')
def handle_upload_file(file,filename):
path='/tmp/' #上传文件的保存路径,可以自己指定任意的路径
if not os.path.exists(path):
os.makedirs(path)
with open(path+filename,'wb+')as destination:
for chunk in file.chunks():
print '-----------'
print chunk
print '-----------'
destination.write(chunk)
3.
node2:/django/mysite/news#cat templates/upload.html
<div class="row">
<div class="col-md-8 col-md-offset-2">
<form class="form-inline" role="form" method="post" enctype="multipart/form-data" accept-charset="utf-8">
<div class="form-group">
<input type="file" name="file">
</div>
<div class="form-group">
<input type="submit" value="上传文件">
</div>
</form>
</div>
</div>