[sinatra] Just Do It: Learn Sinatra, Part One Darren Jones
1. Install sinatra gem
gem install sinatra --no-ri --no-rdoc
2. Basic App
#!/usr/bin/ruby
require 'sinatra'
get '/' do"Just Do It"
end
ruby低于1.9,需要在文件开头加require 'rubygems'
ruby basic.rb
Open up your browser and go to http://localhost:4567.
3. Inline Template
Slim is a fantastic template engine that makes this a much easier task.
Install slime: $ gem install slime
#!/usr/bin/ruby
require "sinatra"
require 'slim'get '/' doslim:index
end#Inline templates always come after the __END__ declaration, and each template begins with @@.__END__@@layout
doctype html
htmlheadmeta charset="utf-8"title Just Do itlink rel="stylesheet" media="screen,projection" href="/style.css"/[if lt IE 9]script scr="http://html5shiv.googlecode.com/svn/trunk/html5.js"bodyh1 Just Doi it== yield @@index
h2 My tasks
ul.tasksli Get Milk
"@@layout" template: This will automatically be rendered with every view and provides a basic HTML5 scaffolding. The key line in the layout template is right at the end (==yield
). The yield
statement renders the content from the whichever template was requested by the handler (in this case, ‘index’).
4. Extend Views (把视图分离出来)
5. Dynamic Content
在主文件rb中增加代码
get "/:task" do@task=params[:task].split('-').join(' ').capitalizeslim :task
end
让‘@task’ equal to the value of params[:task]
对应的视图文件task.slim
h2 My Tasks
= @task
其中@task匹配对应的URL。
6.Forms(窗体处理)
本例把index.slim的内容替换成
form action="/" method="POST"input type="text" name="task"input.button type="submit" value="New Task >>"
这样会在“/”页面显示一个窗体(一个文本框、一个提交按钮)
提交的内容需要一个handler来处理,再sinatra文件中用post(对应窗体提交method),代码如下:
post '/' do@task = params[:task]slim :task
end
转载于:https://www.cnblogs.com/lizunicon/p/3600814.html
[sinatra] Just Do It: Learn Sinatra, Part One Darren Jones相关推荐
- ruby sinatra mysql_Ruby web微框架 – sinatra
Sinatra是一个以最小的消耗快速创建Ruby web应用的DSL. # myapp.rb require 'sinatra' get '/' do 'Hello world!' end 安装gem ...
- sinatra 基本用法
sinatra 不同于rails,是一个轻量级的ruby 框架,非常轻巧灵活. 基本用法如官网所述: #!/usr/bin/env ruby require 'sinatra'get '/frank- ...
- 使用docker构建并测试一个基于Sinatra的Web应用程序
内容来自<第一本Docker书>5.2节和博文整理而成 使用Docker构建并测试Web应用程序 在这个例子里,我们将创建一个应用程序,它接收输入的URL参数,并以JSON散列的结构输出到 ...
- 【sinatra】安装测试
$ gem install sinatra 测试: $ subl app.rb app.rb内容: require 'sinatra'get '/' do"Hello, World!&quo ...
- Sinatra 搭建服务和使用 POST 和 GET 请求服务示例(简单但实用)
Ruby 的 Sinatra 其实有点类似于 Python 的 Flask.我另外一篇博客也写了用 Flask 搭建服务和使用请求服务示例:https://blog.csdn.net/Tomorrow ...
- 玩转Docker实战篇!使用Docker搭建Sinatra Web程序,附加介绍容器关联(Docker Networking、Docker链接)
一.本文目的 前面一篇文章,我们在Docker中搭建了Nginx服务器,并访问了Nginx服务器:https://blog.csdn.net/qq_41453285/article/details/1 ...
- 【微型Web框架(Ruby) Sinatra】
Sinatra:一个优雅地包装了Web开发的DSL Sinatra程序的三个基本组成部分: 路由(route): '/' 就是路由.路由可以是单一的路径,或者带有参数的路径(比如 /:name),甚至 ...
- Bundler 的作用及原理
Bundler 的作用及原理 翻译 · yesmeck · Created at one year ago · Last by teacafe2000 Replied at one year ago ...
- Docker学习笔记五 在测试中使用Docker
2019独角兽企业重金招聘Python工程师标准>>> 5.1 使用Docker测试静态网站(Nginx) 将项目命名为Sample 首先建立构建环境 mkdir sample cd ...
最新文章
- 环境搭建 - 奥比中光3D摄像头(Astra Mini)
- mysql约束条件整型_MySQL 数据类型(整型,浮点型,字符类型,日期类型,枚举和集合) 约束条件 自增...
- 2012-12-21
- mysql 分组占比_含泪整理MySQL索引
- linux下用户配置文件与系统配置文件
- RabbitMQ基本概念
- dapper使用时性能优化
- 老男孩Day1作业(一):编写登录接口
- No package ‘mate-desktop-2.0‘ found
- HashMap底层结构
- python读取grd数据_Matlab读取grd格式的文件
- 网络附加存储技术与磁盘阵列柜的对比
- MYSQL 名人博客
- 图数据库扫盲和图数据选用
- BAT32G137 移植threadX
- sox源码分析:sox_find_effect()
- 双向可控硅实现 插头防插拔火花
- 使用webrtc开发直播系统源码,开发音视频语聊房
- 【汇正财经】什么是股权结构?
- python 通讯录 字典_Python实现命令行通讯录
热门文章
- 2019年《计算机应用基础》,2019年自考《计算机应用基础》模拟练习及答案一
- Linux的fork实现原理,【Linux】Fork炸弹详解
- java datahandler_Java Web Services:使用DataHandler类发送文件
- mysql h 127.0.0.1_MySQL 连接时尽量使用 127.0.0.1 而不是 localhost
- OpenCV中的二进制鲁棒独立基本特征——BRIEF
- GitHub开源的吃鸡版超级玛丽
- 基于YOLO的目标检测界面化部署实现(支持yolov1-yolov5、yolop、yolox)
- 【camera-lidar】自动驾驶相机-激光雷达融合方案综述
- window和linux和android进程内存CPU等监控软件
- keras 的 example 文件 addition_rnn.py 解析