文档:https://docs.masoniteproject.com/
初次体验框架,感觉里边提供了丰富的命令行工具可以快速开发, 主要是ORM很棒,区别于Python生态Django等的ORM,和PHP的laravel很像,简单高效
一、环境配置环境
Python 3.4+
masonite 2.2.26
masonite-cli 2.2.2
安装
$ pip install masonite-cli
$ craft # 查看帮助
二、新建一个项目
# 1、新建项目
craft new project_name
cd project_name
# 2、安装依赖
craft install
# 3、启动服务
craft serve
访问:http://127.0.0.1:8000/ 出现欢迎界面
三、示例1:Hello World1、创建控制器
$ craft controller Index
app/http/controllers/IndexController.py
"""A IndexController Module."""
from masonite.request import Request
from masonite.view import View
from masonite.controllers import Controller
class IndexController(Controller):
"""IndexController Controller Class."""
def __init__(self, request: Request):
"""IndexController Initializer
Arguments:
request {masonite.request.Request} -- The Masonite Request class.
"""
self.request = request
def show(self, view: View):
return "Hello world"
2、配置路由
routes/web.py
"""Web Routes."""
from masonite.routes import Get, Post
ROUTES = [
Get('/', 'IndexController@show'),
]
masonite默认会自动重启服务 再次访问 http://127.0.0.1:8000/
显示:Hello world
示例2:新建TODOLIST项目1、配置数据库,使用sqlite
.env
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=data.db
DB_USERNAME=root
DB_PASSWORD=root
DB_LOG=True
2、创建迁移文件
$ craft migration create_todolist_table --create todolist
设置3个字段:id,title,complete_time databases/migrations/create_todolist_table.py
from orator.migrations import Migration
class CreateTodolistTable(Migration):
def up(self):
"""
Run the migrations.
"""
with self.schema.create('todolist') as table:
table.increments('id')
table.string('title')
table.datetime('complete_time').nullable() # 可以为null
table.timestamps()
def down(self):
"""
Revert the migrations.
"""
self.schema.drop('todolist')
迁移数据, 建表
$ craft migrate
查看建表语句
CREATE TABLE "todolist" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"title" VARCHAR NOT NULL,
"complete_time" DATETIME NULL,
"created_at" DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
"updated_at" DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL
);
可以看到默认多加了2个字段:created_at,updated_at
3、创建Model
$ craft model TodoList
稍作修改 app/TodoList.py
"""TodoList Model."""
from config.database import Model
class TodoList(Model):
"""TodoList Model."""
# 查询数据库的时候会在类名后加s,所以自定义表名
__table__ = "todolist"
# 要写入的字段
__fillable__ = ['title', 'complete_time']
4、创建模板
$ craft view index
$ craft view detail
其中模板引擎使用的是 Jinja2
resources/templates/index.html
TODO LIST
添加
清空
序号
任务
完成时间
编辑
删除
{% for row in rows %}
{{ row.id }}
{{ row.title }}
{% if row.complete_time %}
{{ row.complete_time }}
{% else %}
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?