python - 是否可以直接从 django 表单上传图片?
问题描述
我想在我的网站(在 Heroku 服务器中)运行我的 Dog vs Cat 分类器我不想消耗云中的空间同时不想将上传的图像保存在数据库中。这是我在views.py文件中的代码
def test_model(request):
if request.method == 'POST':
form = modelForm(request.POST, request.FILES)
if form.is_valid():
form.cleaned_data['label_name']
form.save()
inp_img = str(form['test_img'].value())
path = "./media/img/{}".format(inp_img)
dest = "./media/img/"
resz(path,dest,inp_img)
inp = pred_dog_cat().prepare(path)
pred,label = pred_dog_cat().prediction(inp)
pred = round(pred *100,2)
params = {'inpImg':inp_img,'pred':pred,'label':label}
return render(request,'dcapp/output.html',params)
modelForm类在 forms.py中
from django import forms
from .models import *
class modelForm(forms.ModelForm):
class Meta:
model = Test_model
fields = ['test_img','label_name']
models.py文件是:
class Test_model(models.Model):
model_id = models.AutoField(primary_key=True)
label_name = models.CharField(max_length=50,default="None")
test_img = models.ImageField(upload_to='img/',default="None Selected")
output = models.CharField(max_length=50,default="None")
def __str__(self):
self.str_img = str(self.test_img)
return self.str_img
我需要一些关于如何从表单上传图像而不将其保存在数据库中的指导?
和
是否可以在不保存本地的情况下上传它?(因为我不想占用服务器空间)
解决方案
在您的代码中更改它,尝试一下:
if form.is_valid():
my_form = form.save(commit=False)
my_form.cleaned_data['label_name']
#get the image file from model
my_form = request.FILES['test_img']
my_form.save()
推荐阅读
- python-3.x - 如何初始化一个包含自定义函数的列表,而不需要 python 在初始化期间运行这些函数?
- html - 为什么对象适合:包含/覆盖;没有效果?
- php - 为什么 WordPress 后端不再显示导航?
- reactjs - 组件不刷新的react-router路由问题
- html - 无法在 Django 的子模板中包含模板
- python - 是否可以用python在平行对齐的轴上绘制多维点
- date - 如何计算 Pine Script 中两个日期(天数)之间的差异?
- elasticsearch - 如何在不通过 tls 传递 -k 的情况下卷曲 elasticsearch kubernetes 运算符?
- matlab - 在 for 循环中使用 struct 访问二叉搜索树
- android - 我可以在扩展小部件中使用列小部件吗?