【问题标题】:no bind between jquery and python flask defjquery 和 python flask def 之间没有绑定
【发布时间】:2019-07-03 15:03:38
【问题描述】:

我正在使用 jquery 开发一个 Web 项目。 我正在尝试使用 python 3.6 中的烧瓶将服务器端层添加到项目中。

我收到“错误 404”(未找到)

我想我的问题始于 jquery 和“get JSON”之间缺乏绑定。

已经声明了应用路由,但我不确定我这样做是否正确。

$(function() {
           $('a#process_input').bind('click', function() {
            $.getJSON('/background_process', {
              proglang: $('input[name="proglang"]').val(),
            }, function(data) {
              $("#result").text(data.result);
            });
            return false;
           });
         });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
HTML

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="jquery-3.3.1.min.js"></script>
</head>

<body>

    <div class="div_list_con">
            <h3>Welcome! enter a name?</h3>
                <form>
                    <input type=text size=5 name=proglang>
                    <a href=# id=process_input><button class='btn btn-default'>Submit</button></a>
                </form>
            <p id=result></p>
    </div>

</body>
</html>
from flask import Flask, render_template, request, redirect, Response, jsonify
import random, json

app = Flask(__name__)


@app.route('/')
def interactive():

   return render_template('org_structure.html')


@app.route('/background_process')
def background_process():


   try:


      lang = request.args.get('proglang', 0, type=str)

      if lang.lower() == 'python':

         return jsonify(result='You are wise')

      else:

         return jsonify(result='Try again.')

   except Exception as e:

      return str(e)

【问题讨论】:

  • 试试
    并在烧瓶 request.form['name'] 中评估它。
  • 嘿,谢谢!我应该将“request.form['name']”放在 py 脚本的什么位置?
  • 是的,而不是 request.args.get 使用 req.form["name"]
  • 像这样: lang = req.form["org_structure.html"]('proglang', 0, type=str) ?
  • Lang = request.form["proglang"] 或 request.form.get("proglang")

标签: python jquery html flask http-status-code-404


【解决方案1】:

我已经尝试过此代码并且它正在运行,请通过link 进行进一步更改 在烧瓶中

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="jquery-3.3.1.min.js"></script>
</head>

<body>

    <div class="div_list_con">
            <h3>Welcome! enter a name?</h3>
                <form action="/background_process" method="post">
                    <input type=text size=5 name=proglang>
                    <a href=# id=process_input><button class='btn btn-default'>Submit</button></a>
                </form>
            <p id=result></p>
    </div>

</body>
</html>

烧瓶应用程序.py

 @app.route('/background_process',methods = ['POST', 'GET']) 
    def background_process(): 
       if request.method == 'POST': 
          user = request.form['proglang']
          print(user)
       return jsonify(username=user)

你忘记在flask方法中提到POST或GET方法,所以它抛出404错误的原因

【讨论】:

  • 我仍然得到 404“加载资源失败:服务器响应状态为 404(未找到)”我不知道出了什么问题。也许“@app.route('/background_process'...”是不对的?
猜你喜欢
  • 2018-11-13
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
相关资源
最近更新 更多