Използване на Синатра в Руби

click fraud protection

В предишната статия в тази серия от статии, говорихме за това какво е Синатра. В тази статия ще разгледаме някои истински функционален код на Синатра, докосвайки се до няколко функции на Синатра, всички от които ще бъдат разгледани задълбочено в следващите статии от тази поредица.

Преди да започнете, ще трябва да продължите напред и да инсталирате Sinatra. Инсталирането на Sinatra е толкова лесно, колкото всеки друг скъпоценен камък. Sinatra има няколко зависимости, но нищо главно и не би трябвало да имате проблеми с инсталирането му на която и да е платформа.

$ gem инсталирайте синатра

Здравей свят!

Приложението на Sinatra "Hello world" е шокиращо просто. Без да се включват линиите за изискване, шебанг и бялото пространство, това са само три линии. Това не е само някаква малка част от вашето приложение, като контролер в Rails приложение, това е цялото нещо. Друго, което може да забележите, е, че не е необходимо да стартирате нещо като генератора на Rails, за да генерирате приложение. Просто поставете следния код в нов Ruby файл и сте готови.

instagram viewer
#! / usr / bin / env рубин
изискват „rubygems“
изискват „синатра“
получавам '/' правя
'Здравей свят!'
край

Разбира се, това не е много полезна програма, а просто "Здравей свят", но още по-полезните приложения в Синатра не са много по-големи. И така, как стартирате това мъничко уеб приложение? Някакъв комплекс скрипт / сървър команда? Не, просто стартирайте файла. Това е просто програма Ruby, стартирайте я!

инатра $ ./hello.rb
== Sinatra / 0.9.4 пое етапа на 4567 за разработка с архивиране от Mongrel

Не е много вълнуващо все още. Той стартира сървъра и се свързва към порт 4567, така че продължете напред и насочете вашия уеб браузър към http://localhost: 4567/. Има вашето съобщение "Здравей свят". Уеб приложенията никога преди не са били толкова лесни в Ruby.

Използване на параметри

Затова нека разгледаме нещо малко по-интересно. Нека направим приложение, което да ви поздрави по име. За да направите това, ще трябва да използваме параметър. Параметрите в Синатра са като всичко останало - прости и ясни.

#! / usr / bin / env рубин
изискват „rubygems“
изискват „синатра“
получи '/ здравей /: име' направи
"Здравейте # {params [: име]}!"
край

След като направите тази промяна, ще трябва да рестартирате приложението Sinatra. Убийте го с Ctrl-C и го стартирайте отново. (Има начин за това, но ще разгледаме това в следваща статия.) Сега параметрите са ясни. Направихме акция, наречена /hello/:name. Този синтаксис имитира как ще изглеждат URL адресите, така че отидете на http://localhost: 4567 / здравей / Вашето име за да го видите в действие.

Най- /hello част съвпада с тази част от URL адреса от заявката, която сте направили, и : име ще абсорбира всеки друг текст, който му дадете и ще го поставите в Поколения назад хеш под ключа : име. Параметрите са точно толкова лесни. Разбира се, можете да направите много повече с тях, включително параметри, базирани на regexp, но това е всичко, което ще ви трябва в почти всеки случай.

Добавяне на HTML

И накрая, нека да разпръснем това приложение с малко HTML код. Sinatra ще върне всичко, което получи от вашия обработващ URL адреси в уеб браузъра. Засега току-що връщахме низ от текст, но можем да добавим малко HTML там без проблем. Тук ще използваме ERB, точно както се използва в Rails. Има и други (може би по-добри) опции, но това е може би най-познатото, тъй като идва с Ruby, и тук ще се оправи.

Първо, Синатра ще направи обаждане на изглед оформление ако съществува. Този изглед на оформление трябва да има a добив изявление. Тази декларация за добив ще улови изхода на конкретния изглед, който се изобразява. Това ви позволява да създавате оформления много просто. Накрая имаме a Здравейте изглед, който генерира действителното здравно съобщение. Това е изгледът, който беше представен с помощта на erb: здравей метод повикване. Ще забележите, че няма отделни файлове за изглед. Може да има, но за такова малко приложение е най-добре да запазите целия код в един файл. Въпреки че изгледите са отделени в края на файла.

#! / usr / bin / env рубин
изискват „rubygems“
изискват „синатра“
получи '/ здравей /: име' направи
@ name = params [: име]
erb: здравей
край
__КРАЙ__
@@ оформление





@@ Здравейте

Здравейте !

И там го имате. Имаме цялостно, функционално здравно световно приложение в около 15 реда код, включително изгледите. Следващите статии ще разгледаме по-подробно маршрутите, как можете да съхранявате и извличате данни и как да направите по-добри изгледи с HAML.

instagram story viewer