django自定义上传图片
-
定义用户上传图片的页面并显示,是一个自定义的表单。
<form method="post" enctype="multipart/form-data" action="/upload_handle"> {% csrf_token %} <input type="file" name="pic"><br> <input type="submit" value="上传"> </form>
-
定义接收上传图片类
class IMG(models.Model): img = models.ImageField(upload_to='images/upload') name = models.CharField(max_length=20)
-
更新数据库
python manage.py makemigrations python manage.py migrate
-
配置setting.py文件
FILE_UPLOAD_HANDLERS= ("django.core.files.uploadhandler.MemoryFileUploadHandler", "django.core.files.uploadhandler.TemporaryFileUploadHandler")
-
配置setting.py上传基址文件夹
MEDIA_ROOT = os.path.join(BASE_DIR, 'static').replace('\\', '/') #设置静态文件路径为主目录下的media文件夹 MEDIA_URL = ''
-
创建视图函数
def upload_handle(request): """上传图片处理""" if request.method == 'POST': new_img = IMG( img=request.FILES.get('pic'), name=request.FILES.get('pic').name ) new_img.save() return HttpResponse("ok")
-
配置url
url(r'^upload_handle$', views.upload_handle),