Python 如何使html页面显示?

Python 如何使html页面显示?,python,html,flask,Python,Html,Flask,好的,我要读点书。我不希望有人再回答了。感谢所有努力回复的人 @app2.route('/api', methods=['GET', 'POST']) 我按照以下指南创建了一个简单的python应用程序: @app2.route('/api', methods=['GET', 'POST']) 编辑: 好的,我应该在问这个问题之前读更多的东西。让我试着重新表述一下我想做的事情 @app2.route('/api', methods=['GET', 'POST']) 我正在尝试访问下面定义的

好的,我要读点书。我不希望有人再回答了。感谢所有努力回复的人

@app2.route('/api', methods=['GET', 'POST'])
我按照以下指南创建了一个简单的python应用程序:

@app2.route('/api', methods=['GET', 'POST'])
编辑: 好的,我应该在问这个问题之前读更多的东西。让我试着重新表述一下我想做的事情

@app2.route('/api', methods=['GET', 'POST'])
我正在尝试访问下面定义的html页面。我想在文本框中输入文本,然后在flask中定义的api函数中处理该文本。然后,我希望在html页面中输出结果。 我试图在这方面找到更多的资源,但我对html和flask还不熟悉,正在努力学习。 任何提示都将被告知

@app2.route('/api', methods=['GET', 'POST'])
My app.py文件:

from flask import Flask, request, jsonify
from flask_cors import CORS
from serve import get_model_api

app2 = Flask(__name__)
CORS(app2) # needed for cross-domain requests, allow everything by default
model_api = get_model_api()

# default route
@app2.route('/')
def index():
    return "Index API"

# HTTP Errors handlers
@app2.errorhandler(404)
def url_error(e):
    return """
    Wrong URL!
    <pre>{}</pre>""".format(e), 404

@app2.errorhandler(500)
def server_error(e):
    return """
    An internal error occurred: <pre>{}</pre>
    See logs for full stacktrace.
    """.format(e), 500

# API route
@app2.route('/api', methods=['POST'])
def api():
    input_data = request.json
    output_data = model_api(input_data)
    response = jsonify(output_data)
    return response

if __name__ == '__main__':
    app2.run(host='0.0.0.0', port=81, debug=True)
@app2.route('/api', methods=['GET', 'POST'])
从烧瓶导入烧瓶,请求,jsonify
从LASKU cors进口cors
从服务导入获取模型api
app2=烧瓶(名称)
CORS(app2)#跨域请求所需,默认情况下允许所有操作
model_api=get_model_api()
#默认路由
@附录2.路线(“/”)
def index():
返回“索引API”
#HTTP错误处理程序
@app2.errorhandler(404)
def url_错误(e):
返回“”
错误的网址!
<body>
    <div class="container col-lg-6">
        <div style="padding-bottom: 0.5cm">
            <div class="card text-center bg-light">
                <div class="card-body" style="padding-bottom: 0.2cm">
                    <input class="card-title form-control" type="text" id="input" name="input" placeholder="Input sentence"/>
                    <button class="card-text btn btn-outline-primary" id="btn">Find Entities</button>
                    <button class="card-text btn btn-outline-primary" id="btn2">Get random Tweet</button>
                    <div class="spinner" id="spinner" style="display: none">
                      <div class="double-bounce1"></div>
                      <div class="double-bounce2"></div>
                    </div>
                </div>
                <div class="card-footer bg-white">
                    <pre class="card-text api-pre" style="padding-bottom: 0.2cm">
                        <div class="item" id="api_input">Nur der HSV </div>
                        <div class="item" id="api_output">0 0   B-ORG</div>
                    </pre>
                </div>
            </div>
        </div>
    </div>
</body>


<script type="text/javascript">
    function api_call(input) {
        // hide button and make the spinner appear
        $('#btn').toggle();
        $('#spinner').toggle();

        $.ajax({
            url: "0.0.0.0:81/api",
            method: 'POST',
            contentType: 'application/json',
            data: JSON.stringify(input),

            success: function( data, textStatus, jQxhr ){
                // toggle the spinner and button
                $('#btn').toggle();
                $('#spinner').toggle();

                // fill the html for answer
                $('#api_input').html( data.input );
                $('#api_output').html( data.output );

                $("#input").val("");
            },
            error: function( jqXhr, textStatus, errorThrown ){
                $('#btn').toggle();
                $('#spinner').toggle();

                $('#api_input').html( "Sorry, the server is asleep..." );
                $('#api_output').html( "Try again in a moment!" );

                console.log( errorThrown );
            },
            timeout: 3000 // sets timeout to 10 seconds
        });

    }

    $( document ).ready(function() {
        // request when clicking on the button
        $('#btn').click(function() {
            // get the input data
            var input = $("#input").val();
            api_call(input);
            input = "";
    });
    });

</script>
{}”“。格式(e),404 @app2.errorhandler(500) def服务器_错误(e): 返回“” 发生内部错误:{}
@app2.route('/api', methods=['POST'])
def api():
    input_data = request.json
    output_data = model_api(input_data)
    response = jsonify(output_data)
    return response
有关完整堆栈跟踪,请参阅日志。 “”。格式(e),500 #API路由 @app2.route('/api',methods=['POST']) def api(): input_data=request.json 输出数据=模型api(输入数据) 响应=jsonify(输出数据) 返回响应 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': app2.run(host='0.0.0.0',port=81,debug=True)
html文件:

@app2.route('/api', methods=['GET', 'POST'])

查找实体
获取随机推文
努尔德高速列车
0 B-ORG
函数api_调用(输入){
//隐藏按钮并显示微调器
$('#btn').toggle();
$(“#微调器”).toggle();
$.ajax({
url:“0.0.0.0:81/api”,
方法:“POST”,
contentType:'应用程序/json',
数据:JSON.stringify(输入),
成功:函数(数据、文本状态、jQxhr){
//切换微调器和按钮
$('#btn').toggle();
$(“#微调器”).toggle();
//填写html以获得答案
$('api_input').html(data.input);
$('api_output').html(data.output);
$(“#输入”).val(“”);
},
错误:函数(jqXhr、textStatus、errorshown){
$('#btn').toggle();
$(“#微调器”).toggle();
$('#api_input').html(“对不起,服务器正在休眠…”);
$('api_output').html(“请稍后再试!”);
console.log(错误抛出);
},
超时:3000//将超时设置为10秒
});
}
$(文档).ready(函数(){
//单击按钮时请求
$('#btn')。单击(函数(){
//获取输入数据
变量输入=$(“#输入”).val();
api_调用(输入);
输入=”;
});
});

通过添加
/api
您仅发出GET请求,这就是定义的全部内容:

@app2.route('/api', methods=['GET', 'POST'])
curl -X POST MYIP/api -d "{ \"myKey\": \"myValue\"}"
如果您希望信息可用于测试,只需添加GET方法,如下所示:

@app2.route('/api', methods=['GET', 'POST'])
但是,我认为您可能需要仔细阅读HTML请求方法,以了解什么是最适合您使端点执行的操作的类型

@app2.route('/api', methods=['GET', 'POST'])
我猜教程中的信息是希望有一篇关于api的文章,这是很常见的。POST请求的一个简单示例可以使用curl从大多数命令行执行:

@app2.route('/api', methods=['GET', 'POST'])

这应该返回api方法给出的任何响应

这真的不清楚。您是否试图在浏览器中访问
/api
路由?如果是,您已经明确定义了只接受POST请求(来自AJAX)的路由;在浏览器中尝试路由是一个GET请求,您已排除该请求。无需修复。对于/api decorator,请使用
方法=['GET','POST']
。允许GET请求也适用于浏览器,但我感觉简单的JSON响应可能不是他们期望的:)
@app2.route('/api', methods=['GET', 'POST'])