Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@ShogoMurakami

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

More than 1 year has passed since last update.

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

1
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?