Flask用户输入以运行python脚本

时间:2018-09-05 10:51:59

标签: python file flask input request

我试图通过用户输入来构建URL。 因此,网址将始终是相同的:

www.example.com/

,来自用户的输入会将url构建为类似这样的内容:

www.example.com/USERINPUT-1.jpg

我需要这样构建它们:从index.html到/ generate根目录。 我无法弄清楚...我在这里和那里移动椅子没有运气

这是我的奔跑。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>

@Jatimir帮助我解决了我的问题...我得以使它起作用。问题已解决。

1 个答案:

答案 0 :(得分:0)

我解决了我的问题,这是解决方案:从用户输入构建一个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>