поднять MultiValueDictKeyError (key) django .utils.datastructures.MultiValueDictKeyError: 'image' - PullRequest
0 голосов
/ 29 марта 2020

Я потратил МНОГО времени, пытаясь решить эту проблему - прочитайте Django документы, просмотренные формы, но не получил ничего удовлетворительного. Пожалуйста, будьте терпеливы здесь со мной. Я пытаюсь выполнить загрузку файла изображения из моего html шаблона. Загрузка файла происходит правильно, и я могу видеть загруженный файл изображения в HTML.

в моих представлениях. py,

views.py
from django.shortcuts import render
import requests
import sys
from subprocess import run,PIPE
from django.core.files.storage import FileSystemStorage

def button(request):

    return render(request,'home.html')

def output(request):
    data=requests.get("https://www.google.com/")
    print(data.text)
    data=data.text
    return render(request,'home.html',{'data':data})

def external(request):
    inp= request.POST.get('param')
    image=request.FILES['image']
    print("image is ",image)
    fs=FileSystemStorage()
    filename=fs.save(image.name,image)
    fileurl=fs.open(filename)
    templateurl=fs.url(filename)
    print("file raw url",filename)
    print("file full url", fileurl)
    print("template url",templateurl)
    out= run([sys.executable,'D:/corona/Image Edit Html Button Run Python Script/Image Edit Html Button Run Python Script/test.py',inp],shell=False,stdout=PIPE)
    image= run([sys.executable,'D:/corona/Image Edit Html Button Run Python Script/Image Edit Html Button Run Python Script/image.py',str(fileurl),str(filename)],shell=False,stdout=PIPE)
    print(out)
    print(image.stdout)
    return render(request,'home.html',{'data':out.stdout,'raw_url':templateurl,'edit_url':image.stdout})

В моем доме. html

home.html
<!DOCTYPE html>
<html>
    <head>
        <title>
            Python button script
        </title>
    </head>
    <body>
        <button onclick="location.href='{% url 'script' %}'">Execute Script</button> <hr>
        {% if data %}

        {{data | safe}}

        {% endif %}
        <br><br>
        {% if raw_url or edit_url %}
        <span>
        RAW IMAGE:
        <img src={{raw_url}} height=500 width=500>
        PROCESSED IMAGE:
        <img src={{edit_url}} height=500 width=500>
        </span>

        {% endif %}

<br><br>
        <form action="/external/" method="post" enctype="multipart/form-data">
            {% csrf_token %}
           Input Text:
            <input type="text" name="param" required><br><br>
           <br><br>

           <input type="file"name="image" id="image" required>
            <br><br>
            <input type="submit" value="Execute External Python Script">

        </form>

        </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...