9

私はpythonが初めてなので、ファルコンです。私は RESTful API の開発を開始しましたが、これまでのところ falcon は最適です。静的 Web ページを提供するには、他にもいくつかの要件があり、そのためのアプリを作成したり、サーバーを生成したりしたくありません。

falcon アプリから静的 Web ページを提供することは可能ですか?

4

4 に答える 4

14

最初に、そして最も重要なこととして、あなたはそうしたくないと言わなければなりません。すべきことは、Falcon アプリの上に nginx サーバーを配置し、静的ファイルを nginx から直接提供する (そして API 呼び出しを Falcon にリダイレクトする) ことです。

そうは言っても、Falcon から簡単に静的ファイルを提供できます。これはあなたが探しているコードです:

import falcon


class StaticResource(object):
    def on_get(self, req, resp):
        resp.status = falcon.HTTP_200
        resp.content_type = 'text/html'
        with open('index.html', 'r') as f:
            resp.body = f.read()

app = falcon.API()
app.add_route('/', StaticResource())

ファイル名を URL のパラメーターとして設定し、それをリソースで取得して、静的リソースが要求されたファイルをディレクトリから提供できるようにすることができます。

于 2016-01-16T13:23:45.010 に答える
8

次のように、静的ファイルへのルートをより適切に制御できます。

import falcon
class StaticResource(object):
    def on_get(self, req, resp, filename):
        # do some sanity check on the filename
        resp.status = falcon.HTTP_200
        resp.content_type = 'appropriate/content-type'
        with open(filename, 'r') as f:
            resp.body = f.read()


app = falcon.API()
app.add_route('/static/{filename}', StaticResource())
于 2016-03-25T19:02:31.587 に答える