方案一: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)
该文介绍了在Djangoweb框架中,如何通过ORM进行文件上传。涉及到设置MEDIA_URL和MEDIA_ROOT,创建包含FileField的Model,编写HTML表单,以及处理POST请求的View函数。同时,文章还展示了配置静态文件URLs的方法。

4万+

被折叠的 条评论
为什么被折叠?



