[PYTHON] Déployez Flask avec ZEIT maintenant

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.

Exécutez Flask au minimum

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" }]
}

Prend en charge plusieurs itinéraires

problème

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"

On dirait que c'est 404

Si vous déployez dans cet état et accédez à / hello, ce sera 404.

image.png

Évitez en ajoutant des routes à now.json

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": "/" }]
}

Il semble que la demande soit traitée normalement

image.png

Flask est censé gérer tous les chemins

Depuis les routes ont été ajoutées, toute demande qui n'existe pas sera traitée via Flask.

image.png

Personnaliser 404 pages

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

Etat

image.png

Recommended Posts

Déployez Flask avec ZEIT maintenant
Déployer l'application flask avec mod_wsgi (à l'aide de pipenv)
Restriction IP avec Flask
Bonjour le monde sur flacon
Programmation avec Python Flask
Comment déployer une application Web créée avec Flask sur Heroku
Touch Flask + courir avec Heroku
Bonjour le monde avec Flask + Hamlish
Test unitaire du flacon avec pytest
API avec Flask + uWSGI + Nginx
Déployer Django sans serveur avec Lambda
Développement d'applications Web avec Flask
Compilation Python avec pyqt deploy
(Échec) Déployer une application Web créée avec Flask avec heroku
Voir la couverture du flacon avec pytest-cov
Application Web avec Python + Flask ② ③
Téléchargement de fichiers avec Flask + jQuery
Application Web avec Python + Flask ④
[Connexion LINE] Vérifier l'état avec Flask
Bases de SNS Python faites avec Flask
[Mémo] Liens lors du développement avec Flask
Créer un serveur Flask avec Docker
Exécutez l'application avec Flask + Heroku
Persistez le serveur d'API Flask avec Forever
Déployer l'application Django avec Docker
Authentification de base, authentification Digest avec Flask
Créer un environnement Flask avec Dockerfile + docker-compose.yml
Déployer l'application Flask sur heroku (amer)
Exécutez python3 Django1.9 avec mod_wsgi (déployer)
Déployez l'application Flask sur Heroku
Déployez l'application Flask sur heroku
Création d'un babillard avec flask
Développement d'applications avec Docker + Python + Flask
Fonction de téléchargement d'image avec Vue.js + Flask