spyder3(python3.7)でフレームワークの勉強を始めました。  
bottleを使っているのですが、404が出てしまいます。

以下のコードで実装しました。ファイル名はbottle2.pyです。  
index.htmlはフォルダviewsの中にあります。  
bottle.pyは同一フォルダ内にあります。

なぜ404が出てしまうのでしょうか？

また、index.htmlはテキストドキュメントの拡張子をhtmlにするで合ってますか？

@routeの中身とstatic_fileの第2引数が間違っているものと思われます。

あと、このデコレータの意味を教えてください。調べてもピンときませんでした。  
よろしくお願いします。

```

    from bottle import route, run, static_file
    
    @route('/')
    
    def main():
        return static_file('index.html', root='views')
    
    run(host='localhost', port=9999)
    
```
CC BY-SA 4.0
2019-11-13T05:08:53.043
60469
2019-11-16T09:32:37.450
2019-11-14T09:00:53.437
35091
35091
question
python python3 windows spyder
bottleの使い方　windows10でのstatic_file
`spyder`は使っておらず、コマンドプロンプトから使っていますが、質問に書かれた内容をそのまま`bottle2.py`として、以下のフォルダ・ファイル構成で表示出来ています。

`index.html`はテキストファイルではありますが、内容はHTMLの書式に従って(だいたいUTF-8で)記述されたものです。テキストドキュメントと言われる内容がどんなものかは不明ですが、言い方からして少し違うもののように思えます。  
ただし、表示はされるでしょう。

カレントフォルダで`py bottle2.py`により起動

```

    カレントフォルダ
    ├ bottle2.py
    └ views
        └ index.html
    
```

`bottle.py`は`pip`でインストールしており、上記フォルダには無く、以下の場所にあります。

```

    C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Scripts
    C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Lib\site-packages
    
```

`@route`デコレータに関する説明は以下ですね。

[bottle.route](https://bottlepy.org/docs/dev/api.html?highlight=route#bottle.route)

> Decorator to install a route to the current default application. See
> [Bottle.route()](https://bottlepy.org/docs/dev/api.html?highlight=route#bottle.Bottle.route)
> for details.

[bottle.Bottle.route](https://bottlepy.org/docs/dev/api.html?highlight=route#bottle.Bottle.route)

> A decorator to bind a function to a request URL. Example:
```

>     @app.route('/hello/<name>')
>     def hello(name):
>         return 'Hello %s' % name
>  
```

>
> 以下省略

Pythonのデコレータ全般に関する解説ならば、以下の様なものがあります。  
この辺から理解のとっかかりにしてください。  
[Pythonのデコレータについて](https://qiita.com/mtb_beta/items/d257519b018b8cd0cc2e)  
[Pythonのデコレータを理解するための12Step](https://qiita.com/_rdtr/items/d3bc1a8d4b7eb375c368)  
[Python 怖くない！デコレータ](https://note.crohaco.net/2014/python-decorator/)  
[Python デコレータ再入門
~デコレータは種類別に覚えよう~](https://qiita.com/macinjoke/items/1be6cf0f1f238b5ba01b)
CC BY-SA 4.0
2019-11-16T09:32:37.450
60582
2019-11-16T09:32:37.450
26370
60469
answer