LoginSignup
2
2

More than 3 years have passed since last update.

Masoniteでブログを作るチュートリアル①(ブログ的Hello World)

Last updated at Posted at 2019-10-27

Masonite

Masonite自体の紹介はこちらの記事が大変参考になります

この記事は公式チュートリアル の通りに進めていきます.
公式チュートリアル以上の情報はありません.
サクッとキャッチアップしたい人向けの日本語訳的な位置づけです.

今回の範囲

  1. ルーティング作成
  2. コントローラー作成
  3. View作成

ルーティング作成

ルーティングの記述はroutes/web.py で行います.

routes/web.py を見てみましょう

routes/web.py
"""Web Routes."""

from masonite.routes import Get, Post

ROUTES = [
    Get('/', 'WelcomeController@show').name('welcome'),
]

ROUTES listに 初期ページのルーティングが設定されていますね.

同様にblogのルーティングを書きます.

ROUTES = [
    Get('/', 'WelcomeController@show').name('welcome'),

    # Blog Routes
    Get('/blog', 'BlogController@show')
]

これで /blogにGETでアクセスされたときにBlogControllerのshow関数が実行されます.

それでは,次に実行されるべきBlogControllerを作っていきましょう

コントローラー作成

コントローラーのファイルはapp/http/controllers 下に置きます.
(もちろん変更することもできます)

コントローラーの作成はコマンドから行います.


$ craft controller Blog

コマンドが実行されると app/http/controllers 下にBlogController.py が作成されています.

app\http\controllers\BlogController.py

"""A BlogController Module."""

from masonite.request import Request
from masonite.view import View
from masonite.controllers import Controller


class BlogController(Controller):
    """BlogController Controller Class."""

    def __init__(self, request: Request):
        """BlogController Initializer

        Arguments:
            request {masonite.request.Request} -- The Masonite Request class.
        """
        self.request = request

    def show(self, view: View):
        pass

BlogControllerにshow関数が用意されていますね?

今は pass で何もしませんが,これにBlogのViewを返せば良さそうです.

pass のところを下記のように書き換えます.

def show(self, view: View):
    view.render('blog')

これでshow関数が実行されたらblogのViewをレンダリングしてくれるはずです.

おっと,返すべきViewを作成していませんでしたね.

View作成

返すべきViewを作成していきましょう

Viewは resources/templates/ に置かれています.

ファイルを作成してもいいですが,せっかくなのでcraftコマンドから作成してみましょう

$ craft view blog

resources/templates/blog.html が作成されています.

resources/templates/blog.html
This is a Blog

とでも書いておきましょう

最後に

これで,

  1. ルーティング作成
  2. コントローラー作成
  3. View作成

が終わりました.

つまり, http://localhost:8000/blog にアクセスするとThis is a Blogと表示されるはずですね.

$ craft serve

で サーバー起動して http://localhost:8000/blog にアクセスします

きっとThis is a Blog と表示されているはずです.

次回は認証をやります

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2