Настроить пользовательский ввод для запуска скрипта Python - PullRequest
0 голосов
/ 05 сентября 2018

Я пытался создать URL из пользовательского ввода. Таким образом, URL всегда будет одинаковым:

www.example.com/

и ввод пользователя будет преобразовывать URL в нечто вроде:

www.example.com/USERINPUT-1.jpg

Мне нужно было построить их следующим образом: из index.html в / generate root. Я не мог понять это ... Я двигал стулья тут и там без удачи

Вот мой run.py

from flask import Flask, jsonify, render_template, request
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/generate', methods=['GET'])
def generate():
    prefix = request.args.get('prefix')
    urls = []
    for number in range(1, 7):
        urls.append('https://example.com/{p}-{n}.jpg'.format(p=prefix, n=number))
    return jsonify(result=urls)

Вот мой index.html:

<!doctype html>
<html lang="en">
<html>
<head>
   <title>Image Grabber v1.0</title>
</head>
<body>
<center>
<script type=text/javascript>
  $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
  $( document ).ready(function() {
    $('#download').bind('click', function() {
      $.getJSON($SCRIPT_ROOT + '/generate', {
        prefix: $('input[name="prefix"]').val()
      }, function(data) {
        $("#result").text(data.result);
      });
      return false;
    });
  });
</script><br>
 <h2>Image Grabber v1.0</h2>
<p><input type=text size=45 name=prefix>
   <span id=result></span>
<p><button type="submit" id=download>Download</button></p>
</center>
</body>
</html>

@ Джатимир помог мне решить мою проблему ... и я смог заставить ее работать. Вопрос решен.

1 Ответ

0 голосов
/ 14 сентября 2018

Я решил свою проблему, вот решение: создать URL из пользовательского ввода. Извините за то, что сделал это так запутанно!

from flask import Flask, jsonify, render_template, request
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/generate', methods=['GET'])
def generate():
    prefix = request.args.get('prefix')
    urls = []
    for number in range(1, 7):
        urls.append('https://example.com/{p}-{n}.jpg'.format(p=prefix, n=number))
    return jsonify(result=urls)

HTML-файл:

<!doctype html>
<html lang="en">
<html>
<head>
   <title>Image Grabber v1.0</title>
</head>
<body>
<center>
<script type=text/javascript>
  $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
  $( document ).ready(function() {
    $('#download').bind('click', function() {
      $.getJSON($SCRIPT_ROOT + '/generate', {
        prefix: $('input[name="prefix"]').val()
      }, function(data) {
        $("#result").text(data.result);
      });
      return false;
    });
  });
</script><br>
 <h2>Image Grabber v1.0</h2>
<p><input type=text size=45 name=prefix>
   <span id=result></span>
<p><button type="submit" id=download>Download</button></p>
</center>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...