Django form图片文件上传

表单文件上传

用户信息表的图像存储字段,数据库只存路径

# 上传到media下面的/avatars/
avatar = models.FileField(upload_to="avatars/", default="avatars/default.png", verbose_name="头像")

settings设置文件上传位置,数据库只存路径

# Django用户上传的都叫media文件
MEDIA_URL = "/media/"
# media配置,用户上传的文件都默认放在这个文件夹下
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

HTML文件

form标签必须加上enctype="multipart/form-data"
{% csrf_token %}

views接收文件

form_obj = forms.RegForm(request.POST)
# form帮我做校验
if form_obj.is_valid():
	# 校验通过,去除重复数据
	form_obj.cleaned_data.pop("re_password")
	#得到文件对象
	avatar_img = request.FILES.get("avatar")
	#数据库存储新数据
	models.UserInfo.objects.create_user(**form_obj.cleaned_data, avatar=avatar_img)

JS显示选择图片


你可能感兴趣的:(Django)