Help us understand the problem. What is going on with this article?

Python Webフレームワーク Bottleの足場作成ツールを作ってみた

create bottle app.png

WebフレームワークのBottleをご存知でしょうか?

PythonのWebフレームワークではDjangoが有名ですが、個人的に好きなフレームワークにBottleがあります。

1つのPythonファイルとHTMLファイルを用意してあげるだけで、簡単にWebアプリケーションを作ることができます :)

Bottle

以下のコマンドで、Bottleをインストールすることができます。

$ pip install bottle

足場作成ツール

いくつかBottleでWebアプリケーションを作ってみましたが、いつも同じようなディレクトリ構成になります。

毎回、同じような環境を作るのは面倒くさいので、自動的にフォルダやファイルを生成するツールを作ってみました :)

ソースコードはGitHubにあげています。

ツール(creator.py)を実行すると、プロジェクト名と利用するCSSフレームワークを聞かれます。

入力が完了すると、以下のディレクトリ構成で自動的に生成されます。

├── app.py
├── static
│   └── main.css
└── views
     └── index.html

生成されたファイルを見てみます。

index.html
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="../static/main.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.8.0/css/bulma.min.css">

    <title>test3</title>

  </head>
  <body>

    <section class="hero is-medium is-primary is-bold">
      <div class="hero-body">
        <div class="container">
          <h1 class="title">
            {{message}}
          </h1>
        </div>
      </div>
    </section>

  </body>
</html>
app.py
# -*- coding: utf-8 -*-

from bottle import Bottle, template, static_file, url
import os

app = Bottle()

@app.route('/static/:path#.+#', name='static')
def static(path):
    return static_file(path, root='static')

@app.route('/')
def index():
    message = "Hello, Bottle!"
    return template('index', message=message)

@app.error(404)
def error404(error):
    return "Error 404. Try again later."

@app.error(500)
def error500(error):
    return "Error 500. Try again later."

app.run(host='localhost', port=8080, debug=True)

生成が終了したら、プロジェクトフォルダに移動し、app.pyを実行してみます。

$ cd <project-name>
$ python app.py

http://localhost:8080 を開くと、以下のように表示されると思います。

(選択したCSSフレームワークによって表示が異なります。)

スクリーンショット 2020-02-11 15.48.34.png

あとは、コードを書いてプロジェクトを充実させていくだけです!

ツールとして足りない点が多いと思いますが、よろしければ使ってみて下さい :)

Links

Bottle: https://bottlepy.org/docs/dev/index.html

足場作成ツール: https://github.com/ShogoMurakami/create-bottle-app

Thanks,
shogo

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした