Python 冻结烧瓶应用程序时如何传递参数?
我想将我的flask应用程序部署到netlify。我明白了,要做到这一点,我首先要把它冻结。以下是我到目前为止的运行方式: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
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
文件中
您可能希望查看,以找到一种可用于部署应用程序的方法