Python 冻结烧瓶应用程序时如何传递参数?

Python 冻结烧瓶应用程序时如何传递参数?,python,flask,Python,Flask,我想将我的flask应用程序部署到netlify。我明白了,要做到这一点,我首先要把它冻结。以下是我到目前为止的运行方式: from flask import Flask, jsonify, request from flask_cors import CORS, cross_origin import requests import json from flask_frozen import Freezer app = Flask(__name__) CORS(app) @app.rout

我想将我的flask应用程序部署到netlify。我明白了,要做到这一点,我首先要把它冻结。以下是我到目前为止的运行方式:

from flask import Flask, jsonify, request
from flask_cors import CORS, cross_origin
import requests
import json
from flask_frozen import Freezer

app = Flask(__name__)
CORS(app)

@app.route('/api')
def api():
    data = dict(request.args)
    print(data)
    url = f"https://www.google.com/search?q={data['question']}"
    x = requests.post(url=url, data=json.dumps(data))
    return 'Hello world'

app.run()
这个很好。如果我想冻结它,我添加:

from flask import Flask, jsonify, request
from flask_cors import CORS, cross_origin
import requests
import json
from flask_frozen import Freezer

app = Flask(__name__)
CORS(app)
freezer = Freezer(app)


@app.route('/api')
def api():
    data = dict(request.args)
    print(data)
    url = f"https://www.google.com/search?q={data['question']}"
    x = requests.post(url=url, data=json.dumps(data))
    return 'Hello world'

freezer.register_generator(api)
freezer.freeze()
我得到一个错误:

url=f“https://www.google.com/search?q={data['question']}”

关键错误:“问题”

ValueError:URL/api上出现意外状态“500内部服务器错误”

我也试过了

@app.route('/api/<question>')
def api(question):
    data = dict(request.args)
@app.route(“/api/”)
def api(问题):
data=dict(request.args)
运行应用程序时,这项功能运行良好。但当我冻结它时,我得到:

TypeError:api()缺少1个必需的位置参数:“问题”


如何冻结我的应用程序以便部署它?

Flask freezed
是一个扩展,允许您将Flask应用程序转换为一组静态HTML文件,以便部署在不支持Python的bog标准Web服务器上

如果您的站点有一组预定义的端点/页面(例如博客应用程序的前端),所有动态路由都可以从一组已知的数据库实体生成,那么这将非常有效

但是,这不适用于调用
请求的代码。在谷歌URL上发布
。为了实现这一点,您需要了解用户可能输入的每一组术语,在“冻结”过程中,它会向该URL发出无数请求,以便生成您将承载的静态页面


不要将此库与单独的
pipfreeze
命令混淆,这是一种在环境中冻结Python需求的方法,通常是将Python需求冻结到
requirements.txt
文件中

您可能希望查看,以找到一种可用于部署应用程序的方法