我有一个基本的flask
应用,该应用使用flask_restful
扩展名(用于提供宁静的服务):
main.py
from google.cloud import datastore
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
datastore_client = datastore.Client()
class HelloWorld(Resource):
def get(self):
# retrieve from datastore here
return {'greeting': 'hello'}
api.add_resource(HelloWorld, '/greet')
通常,flask应用将呈现如下模板:
@app.route('/')
def home():
return render_template("index.html")
默认情况下,flask将从以下位置检索index.html
:
templates/index.html
目录。
但是,当访问/
路线时,我不想呈现模板。相反,我想在应用程序引擎项目内完全不同的目录中提供JS客户端应用程序(Angular,React,Vue):
my-gae-project/
app.yaml
main.py
main_test.py
requirements.txt
app/ <--- JS app lives here; consumes flask restful api
src/
index.html
script.js
style.js
build/
index.html
起初,我认为这就像修改app.yaml
文件以指向app/
子目录一样简单:
runtime: python37
handlers:
- url: /static
static_dir: static
- url: /app
static_dir: app
- url: /.* <--- route all requests to '/' to app.index.html
script: app/index.html
但这不起作用。那么,如何在GAE中为使用烧瓶其余API的JS客户端提供服务呢?
答案 0 :(得分:0)
在App Engine上的生产中不建议这样做,您可以决定是否要使用Python Flask或JS(React,Angular,Vue)开发整个应用程序。
对此的最佳解决方案是将您的应用程序划分为在GAE上运行的two services.