터치 언어 방식의 Web Application Framework-Revel

13067 단어 GoRevel

아무래도


Go에 대한 열정은 식지 않았지만, 잘 모르겠어요.
어쨌든 WAF부터 조금씩 배워야겠다는 생각에 조사를 해봤어요.
나는 Revel이라는 물건을 찾았다.
Play-Framework에서 제작한 프레임을 참고한 것 같습니다.
어떤 물건인지 Go 언어도 잘 모르니 터트리얼에 적힌 샘플의 코드를 참고해서 만져보세요...

Go 언어 같은 거 설치.


Tutorial에 기재된 내용은 그대로...
GOPATH 설정
mkdir ~/gocode
echo 'export GOPATH="$HOME/gocode' >> ~/.zshenv
source ~/.zshenv

더 많은 goo를 설치합니다.

brew install go
googet을 통해 창고에서 revel을 설치합니다.
go get github.com/robfig/revel
명령줄 도구의 구축.
cd ~/gocode
go build -o bin/revel github.com/robfig/revel/cmd
$GOPATH/bin 아래에 명령이 구축되어 있기 때문에 PATH를 통과합니다.
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshenv
source ~/.zshenv
끝.

시험해 보다


revel 명령을 두드려 보세요.
revel 

통과했으니까 괜찮을 거야.응용 프로그램 스케줄링에서도 자동 생성을 시도해 봅니다
revel new myapp

GOPATH/src/myyapp에서 응용 프로그램의 구성 프로그램을 만듭니다.
(이 점에 대해서는 아이슈에서 지령을 수행하는 곳에서는 할 수 없다는 설이 있다. 하지만 지금으로서는 어쩔 수 없다. 환경에 따라 구축 목표도 다르고 GOPATH도 달라질 수 있기 때문이다...)->https://github.com/robfig/revel/issues/57
명령 집행을 재촉받았으니 두드려라.
revel run myapp

일어서다.

컨트롤러 추가(방법)


그러면 외로우니까 컨트롤러를 추가해 봐.
우선, 달러 GOPATH/src/myapp/app/controller/app.go의 현황.
app.go
package controllers

import "github.com/robfig/revel"

type Application struct {
     *revel.Controller
}

func (c Application) Index() revel.Result {
     return c.Render()
}
달러 GOPATH/src/myapp/conf/routes의 현황.
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

GET     /                                       Application.Index

# Ignore favicon requests
GET     /favicon.ico                            404

# Map static resources from the /app/public folder to the /public path
GET     /public/{<.+>filepath}              Static.Serve("public")

# Catch all
*       /{controller}/{action}                  {controller}.{action}
루트에 루트 조건을 추가합니다.
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

GET     /                                       Application.Index
GET     /welcome-to-underground                 Application.WelcomeToUnderGround

# Ignore favicon requests
GET     /favicon.ico                            404

# Map static resources from the /app/public folder to the /public path
GET     /public/{<.+>filepath}              Static.Serve("public")

# Catch all
*       /{controller}/{action}                  {controller}.{action}

/웹 comme-to-underground를 미리 추가합니다.
대응하는 컨트롤러는 애플이다.WelcommeTounder Ground로 사용됩니다.
Application.WelcommeTounder Ground를 적용합니다.goo에 기술하다.
app.go
package controllers

import "github.com/robfig/revel"

type Application struct {
     *revel.Controller
}

func (c Application) Index() revel.Result {
     return c.Render()
}

func (c Application) WelcomeToUnderGround() revel.Result {
  return c.Render()
}
c.Render,GOPATH/src/myyapp/app/view/Application/Welcome Tounder Ground.왜냐하면 제가 주워야 돼요.
뷰용) 파일도 준비해야 합니다.
WelcomeToUnderGround.html
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8"/>
    <title>Welcome to underground</title>
  </head>
  <body>
    <h1>Welcome to underground</h1>
    <p>そっと耳元で囁く。</p>
  </body>
</html>
이 단계를 한 후, Revel을 다시 시작하고 브라우저에서 다시 확인하십시오.

잡다

변화하는 네트워크를 목표로


변화가 없으면 재미가 없으니까 버튼 같은 걸 올려놔요.
WelcomeToUnderGround.>을(를) 다음과 같이 변경합니다.
WelcomeToUnderGround.html
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8"/>
    <title>Welcome to underground</title>
  </head>
  <body>
    <h1>Welcome to underground</h1>
    <p>そっと耳元で囁く。</p>
    {{if .flash.success}}
    <p>{{.flash.success}}</p>
    {{end}}
    <form method="POST" action="/no-thank-you">
      <button type="submit">No thank you</button>
    </form>
  </body>
</html>
flash? 이거 뭐야?개의치 않는다!
routes에 대해/no-thank-you에 대응하기 위해 루트 조건을 추가했습니다.
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

GET     /                                       Application.Index
GET     /welcome-to-underground                 Application.WelcomeToUnderGround
POST    /no-thank-you                           Application.NoThankYou

# Ignore favicon requests
GET     /favicon.ico                            404

# Map static resources from the /app/public folder to the /public path
GET     /public/{<.+>filepath}              Static.Serve("public")

# Catch all
*       /{controller}/{action}                  {controller}.{action}
app.go
package controllers

import "github.com/robfig/revel"

type Application struct {
     *revel.Controller
}

func (c Application) Index() revel.Result {
     return c.Render()
}

func (c Application) WelcomeToUnderGround() revel.Result {
  return c.Render()
}

func (c Application) NoThankYou() revel.Result {
  c.Flash.Success("は?")
  return c.Redirect(Application.WelcomeToUnderGround)
}
하?무엇이든지 개의치 않는다.
레벨을 다시 시작합시다.
/welcomme-to-underground.

버튼이 추가되었으니 클릭해 보세요.

하?
이게 뭐야?예, 플래시는 방향을 바꿀 때 쿠키에서 REVEL을 말합니다.FLASH 키의 경우
c.Flash.Success(message)를 진행하면 revel 측은 쿠키리(상)에 메시지를 추가하는 기능입니다.편리

객사


하지만... 현재 내 상태는 revel 서버 측 설치 상황, 성능 및 기타 상황, Wishlist에 ORM에 대한 gorp 같은 것이 적혀 있어 앞으로 어떻게 될지 모르겠지만 github에는 800여 명의 스타가 있다(2013년 3월 20일 현재)나는 어느 정도 지지받는 틀이라고 생각한다.좋잖아.
컨트롤러에 대해 말하자면, 분류를 나누는 것이 매우 중요하기 때문에, 그것을 자신이 쉽게 사용할 수 있는 형상으로 만들어야 한다
app.goo에 다 쓰면 페이지 수가 늘어나면 죽는다Padrino거나 다른 좋아하는 프레임부터 모방하는 것이 좋다.Validation 같은 것도 기능 중 하나지만 조수가 얼마나 강한지 아직 사용하지 않았다.
...Go 언어의 Go 루틴에 대해 아무래도 파악했다고 생각하거나 다른 루틴에 의뢰하여 집행을 피한다는 인식이 존재하는지채널 유형 사용 아니면 다른 것을 다시 보고 revel 창고samples에 있는chat의 출처를 보면 기억이 좋다.
주로 Go 언어를 전혀 배우지 않았다.제로 상태.
내가 쓸데없는 일에 참견했어.

좋은 웹페이지 즐겨찾기