方案一:python原生open方式
方案二:Django的ORM
这里采用方案二,首先设置setting,注意media后要加 /
Setting设置,末尾加入
MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
Model层:
from django.db import models
class Content(models.Model):
title=models.CharField('文章名字',max_length=11)
picture=models.FileField(upload_to='picture')
HTML页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>upload</title>
</head>
<body>
{% csrf_token %}
<form action="/main/test" method="post" enctype="multipart/form-data">
<input type="text" name="title">
<input type="file" name="myfile">
<input type="submit" name="上传">
</form>
</body>
</html>
VIEW层:
def upload_view(request):
if request.method=='GET':
return render(request,'main/test.html')
elif request.method=='POST':
title=request.POST['title']
a_file=request.FILES['myfile']
Content.objects.create(title=title,picture=a_file)
return HttpResponse('upload success')
urls
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('test', views.upload_view),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)