1

你好我有下面的html代码

<form>
<input type="text" id="filepathz" size="40" placeholder="Spot your project files">
<input type="button" id="spotButton" value="Spot">
</form>

javascript代码

  window.onload = init;

  function init() {
          var button = document.getElementById("spotButton");
          button.onclick = handleButtonClick;
  }       

  function handleButtonClick(e) {
          var filepathz = document.getElementById("filepathz");

         var path = filepathz.value;

         if (path == "") {
                 alert("give a filepath");
         }else{
                 var url = "http://localhost:5000/tx/checkme/filepathz=" + path;
                 window.open (url,'_self',false);
         }       
 } 

和烧瓶上的python代码

def index():
        """Load start page where you select your project folder
        or load history projects from local db"""
        from txclib import get_version
        txc_version = get_version()
        prj = project.Project(path_to_tx)

        # Let's create a resource list from our config file
        res_list = []
        prev_proj = ''
        for idx, res in enumerate(prj.get_resource_list()):
                hostname = prj.get_resource_host(res)
        username, password = prj.getset_host_credentials(hostname)
        return render_template('init.html', txc_version=txc_version, username=username)

    @app.route('/tx/checkme/<filepathz>')
    def checkme(filepathz):
            filepathz = request.args.get('filepathz')
            return render_template('init.html', txc_version=filepathz)

我在做什么错并且无法从表单(filepathz)中获取数据<---我没有得到

4

1 回答 1

3

您没有正确传递变量。传递变量有两种方式:

1)通过get方法传递它:

http://localhost:5000/tx/checkme/?filepathz=" + path; (Note the '?')

目前您正在尝试从 request.args 获取变量但没有在请求中传递它,这就是您没有得到的原因。

2)从带有flask的url结构的url中获取它:

在 JS 中执行此操作:http://localhost:5000/tx/checkme/" + path

在你看来:

@app.route('/tx/checkme/<filepathz>')
def checkme(filepathz):
      return render_template('init.html', txc_version=filepathz) # You can use this variable directly since you got it as a function arguement.
于 2012-07-19T15:49:44.547 回答