一、创建项目
在settings.py
中配置文件上传的路径
#上文件的目录
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
然后创建media
文件夹
二、创建一个APP
upload_app
别忘在主路由中以及settings.py
配置路由与注册应用
还有需要注册文件上传的路径
from django.contrib import admin
from django.urls import path, include
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('upload/', include('upload_app.urls')),
]
#文件上传的路径
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
三、代码编写
以下代码都在uoload_app
目录下
3.1、models.py
这里的模型文件的picture会直接映射图片上传的相对位置
from django.db import models
# Create your models here.
class Content(models.Model):
title = models.FileField('文章名称',max_length=11)
picture = models.FileField(upload_to='picture')
3.2、views.py
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
#上传文件
from upload_app.models import Content
def test_upload(request):
if request.method == 'GET':
return render(request, 'upload_app/test_upload.html')
elif request.method == 'POST':
title = request.POST['title']
myfile = request.FILES['myfile']
Content.objects.create(title=title,picture=myfile)
return HttpResponse('----上传成功!')
3.3、urls.py
from django.urls import path
from . import views
urlpatterns = [
path('upload', views.test_upload),
]
四、运行效果
数据库添加了一条数据