一、上传到本地
准备工作:
models中创建表:
classBook(models.Model):
name=models.CharField(
max_length=40)
icon=models.ImageField(
upload_to="icons" #指定文件保存的路径名 系统自动创建
)
settings中配置存储路径
MEDIA_ROOT = os.path.join(BASE_DIR, "static/uploads")
生成一个不重复的文件名:
importuuid,hashlibdefget_unique_str():
uuid_str=str(uuid.uuid4())
md5=hashlib.md5()
md5.update(uuid_str.encode('utf-8'))return md5.hexdigest()
方法一(文件保存到本地和数据库):
views视图中的写法:
deftest1(req):if req.method == 'GET':return render(req, 'mybook.html',{'book_name':book.name,'icon':icon_url})
name= req.POST.get('name')
myfile= req.FILES.get('icon')
book= Book.objects.create(name=name,icon=myfile) #将数据存储到Book表中return HttpResponse('OK')
前端页面写法:
Title{% csrf_token %}