Masonite
Masonite自体の紹介はこちらの記事が大変参考になります
この記事は公式チュートリアル の通りに進めていきます.
公式チュートリアル以上の情報はありません.
サクッとキャッチアップしたい人向けの日本語訳的な位置づけです.
今回の範囲
- ルーティング作成
- コントローラー作成
- View作成
ルーティング作成
ルーティングの記述は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
が作成されています.
"""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
が作成されています.
This is a Blog
とでも書いておきましょう
最後に
これで,
- ルーティング作成
- コントローラー作成
- View作成
が終わりました.
つまり, http://localhost:8000/blog
にアクセスするとThis is a Blog
と表示されるはずですね.
$ craft serve
で サーバー起動して http://localhost:8000/blog
にアクセスします
きっとThis is a Blog
と表示されているはずです.
次回は認証をやります