GithubHelp home page GithubHelp logo

gof's Introduction

gof

GOF: The golang mvc web framework

###View(Using Razor Template)

define layout page

file extension name: *.rlayout

<html>
	<body>
		<div>
			@{renderbody()}
		</div>
	<body>
</html>

view for displaying:

  • file extension name: *.gorazor

  • using static type model & layout

@import "github.com/JustinHuang917/gof/appsite/models"
@model *models.Order
@layout ./appsite/view/html/defaultrazor.rlayout

<div>
	<div>OrderNo:@model.OrderNo</div>
	<div>OrderBy:@model.OrderBy</div>
	<div>Amount:@model.Amount</div>
</div>

view for creating:

@import "github.com/JustinHuang917/gof/appsite/models"
@model *models.Order
@layout ./appsite/view/html/defaultrazor.rlayout

<form action="./create" method="post">
	<div>
		OrderBy:<input type="text" id="txtOrderBy" name="OrderBy"/>
		Amount:<input type="text" id="txtAmount" name="Amount"/>
		<input type="Submit" value="Submit"/>
	</div>
</form>

###Model

type Order struct {
	OrderNo string
	OrderBy string
	Amount  float32
}

var orders []*Order

func CreateOrder(order *Order) string {
	if orders == nil {
		orders = make([]*Order, 0, 10)
	}
	c := len(orders) + 1
	id := strconv.Itoa(c)
	order.OrderNo = id
	orders = append(orders, order)
	return order.OrderNo
}

func GetOrder(id string) *Order {
	for _, order := range orders {
		if order.OrderNo == id {
			return order
		}
	}
	return nil
}

func GetAllOrders() []*Order {
	return orders
}

###Controller

func init() {
	gofcore.RegisterController("order", &OrderController{})
}

type OrderController struct {
	gofcore.ControllerBase
}

func (c OrderController) GetOrder(context *gofcore.HttpContext) (viewResult *gofcore.ViewResult) {
	idValue := context.RoutesData.Get("id")
	if id, ok := (idValue).(string); ok {
		order := models.GetOrder(id)
		if order == nil {
			panic("Order not exsited")
		}
		viewResult = c.View(order, context)
	}
	return
}

func (c OrderController) GetCreate(context *gofcore.HttpContext) (viewResult *gofcore.ViewResult) {
	m := &models.Order{}
	viewResult = c.View(m, context)
	return
}

func (c OrderController) PostCreate(context *gofcore.HttpContext, order models.Order) (viewResult *gofcore.ViewResult) {
	id := models.CreateOrder(&order)
	c.RedirectToActionWithRouteData(context, "Order", map[string]string{"id": id})
	return
}

Startup

All view files(*.gorazor) need to build to go source files,so,just

run ./build.sh to build.

run ./run.sh file to startup

access: http://localhost:9999/Order/Create

gof's People

Contributors

justinhuang917 avatar

Stargazers

yangchenglong avatar  avatar  avatar  avatar Weng Wei avatar Alfred Hall avatar Eric Zhang avatar e-Cheng Liu avatar  avatar 余超 avatar  avatar Lz avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

soa4java

gof's Issues

import path case

I notice that the project imports its own packages with the prefix

github.com/justinhuang917/gof/

but the project is named

github.com/JustinHuang917/gof/

Notice the different case for 'J' and 'H'. This will cause problems depending on how people fetch the project to their Go workspace. You should probably update the packages to use the prefix "github.com/JustinHuang917/gof/".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.