#python #flask #download
#python #flask #Скачать
Вопрос:
У меня есть небольшой скрипт, который является средством очистки изображений. По сути, вы предоставляете скрипту ссылку, и он загружает все изображения с веб-страницы в папку на вашем рабочем столе. Я хотел бы такую же функциональность, но в браузере. Я прошу пользователей ввести ссылку, и скрипт начинает загрузку изображений по ссылке на их компьютер. Мой код приведен ниже:
@app.route('/')
def main():
return render_template('index.html')
@app.route('/Downlading', methods=['POST'])
def Downlading():
url= request.form['url']
start = request.form['start']
end = request.form['end']
dphy = image_downloader(url) #this is the script that saves the images
return str(dphy)
Я могу получить URL пользователя и передать его image_downloader, который загружает изображения. Проблема в том, что изображения загружаются из командной строки. Я хочу, чтобы скрипт запускался внутри браузера, точно так же, как он запускался бы в моей IDE. Извините, если это сбивает с толку.
Мой HTML-код:
<form action="/Downlading" method="POST" >
URL: <input type="text" name="url"><br/>
Start: <input type="text" name="start"><br/>
End: <input type="text" name="end"><br/>
<input type="submit" name="form" value="Submit" />
</form>
Комментарии:
1. что происходит, когда вы запускаете код?
2. Если вы введете URL-адрес на веб-сайте, изображения будут загружены по URL-адресу, но загрузка отобразится в командной строке. Разве это не должно загружаться в браузере
3. Вы должны создать HTML-шаблон для его размещения.
4. Я новичок в html и flask. Не могли бы вы, пожалуйста, пояснить, как я могу добавить это в HTML.
5. Конечно, только что добавлен ответ.
Ответ №1:
Вам нужно создать HTML-шаблон для переменной, в которой будет отражаться. Например:
HTML — upload.html:
<html>
<title>Example on StackOverflow</title>
<p> The str representation of the variable dphy is {{ dphy }} </p>
</html>
Python (добавьте это в существующий скрипт flask):
@app.route('/Downlading', methods=['POST'])
def Downlading():
url= request.form['url']
start = request.form['start']
end = request.form['end']
dphy = image_downloader(url) #this is the script that saves the images
return render_template('upload.html', dphy=str(dphy))
Это должно сработать, но я не могу протестировать это прямо сейчас, поэтому я не уверен. Это основная идея для передачи переменных через Flask — создайте шаблон, который использует переменную, затем передайте ее явно при рендеринге этого созданного шаблона.