J'ai eu du mal à faire fonctionner Python (Flask) avec NOW. Le document officiel est également difficile à voir, je vais donc le résumer à nouveau.
Si vous exécutez simplement Flask, cela fonctionnera. Le point important est les versions de now.json.
index.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "hello"
requirements.txt
flask==1.0.2
now.json
{
"version": 2,
"builds": [{ "src": "index.py", "use": "@now/python" }]
}
Supposons que vous ajoutiez un routage à index.py qui gère / hello
.
index.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "hello"
@app.route("/hello")
def world():
return "world"
Si vous déployez dans cet état et accédez à / hello
, ce sera 404.
Pour le gérer correctement, modifiez now.json et ajoutez des routes. Désormais, toute demande sera traitée par wsgi root.
now.json
{
"version": 2,
"builds": [{ "src": "index.py", "use": "@now/python" }],
"routes": [{ "src": "/.*", "dest": "/" }]
}
Depuis les routes ont été ajoutées, toute demande qui n'existe pas sera traitée via Flask.
Personnalisable en consultant la Page d'erreur personnalisée dans la documentation officielle de Flask
index.py
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def index():
return "hello"
@app.route("/hello")
def world():
return "world"
@app.errorhandler(404)
def resource_not_found(e):
return jsonify(error=str(e)), 404
Recommended Posts