GVKun编程网logo

Golang开发web应用(v0.02)(golang web 开发)

14

在本文中,我们将为您详细介绍Golang开发web应用的相关知识,并且为您解答关于v0.02的疑问,此外,我们还会提供一些关于AngularJS开发Web应用程序、angularjs怎么开发web应用

在本文中,我们将为您详细介绍Golang开发web应用的相关知识,并且为您解答关于v0.02的疑问,此外,我们还会提供一些关于Angular JS 开发Web应用程序、angularjs怎么开发web应用?angularjs开发web应用实例、Elixir Plug: 使用Plug开发Web应用程序、Flask开发Web应用的有用信息。

本文目录一览:

Golang开发web应用(v0.02)(golang web 开发)

Golang开发web应用(v0.02)(golang web 开发)

经过几天实践,现将学习go语言开发web应用的一点经验记录如下:

1、项目管理

可以按go的规范设置,我自己的设置主要为:

其中:

hw是项目根目录,是执行文件所在目录;template是模板及静态文件目录,其中有模板文件目录html、css文件目录css、javascript文件目录等,其它如image等根据需要设置。

2、如何设定模板及静态文件目录?

如下代码,利用http的Dir、FileServer、StripPrefix、Handle函数进行设置:

func StaticServer(prefix string,staticDir string) {
	http.Handle(prefix,http.StripPrefix(prefix,http.FileServer(http.Dir(staticDir))))
	return
}
使用示例:
StaticServer("/template/","./template")
其中 "./template"是相对目录或绝对目录,如本例中为"hw/template"或"d:/hw/template"; "/template/"是URL中的路径名称,如:http://www.google.com/template 。

在HTML文件或其它函数中如何使用呢?

HTML中:

<link rel="stylesheet" href="template/css/main.css" type="text/css" /> 
函数中:
if r.Method == "GET"{
		t,err := template.ParseFiles("template/html/homepage.html")
		if err != nil{
			return
		}
3、完整示例代码:

Go源代码:

package main

import (
	"log"
	"net/http"
	"html/template"
)

func Hello(w http.ResponseWriter,r *http.Request) {
	if r.Method == "GET"{
		t,err := template.ParseFiles("template/html/homepage.html")
		if err != nil{
			return
		}
		err = t.Execute(w,nil)
	}
}

func StaticServer(prefix string,http.FileServer(http.Dir(staticDir))))
	return
}

func main() {
	StaticServer("/template/","./template")
	http.HandleFunc("/",Hello)
	err := http.ListenAndServe(":8000",nil)
	if err != nil {
		log.Fatal("ListenAndServe: ",err.Error())
	}
}

CSS源代码:
body
{
    background-color: black;
    color: red;
    text-align: center;
}

HTML源代码:
<html>
    <head>
        <title>okkkkkk</title>
        <link rel="stylesheet" href="template/css/main.css" type="text/css" /> 
    </head>
    <body>
        <h2>this is a test for golang.</h2>
    </body>
</html>
4、编译运行:

1)8g hw.go

2)8l -o hw.exe hw.8

3)hw

5、运行结果:


源代码见我的资源中:http://download.csdn.net/detail/yavobo/5783049 (v0.02) 和http://download.csdn.net/detail/yavobo/5786411 (v0.03)

Angular JS 开发Web应用程序

Angular JS 开发Web应用程序

1.SPA 应用程序:单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。


如:网页云音乐(http://music.163.com/)

2.Angular JS的一些属性特征:

1)MVC

2)模块化

3)自动化双向数据绑定

4)指令系统(非侵入式API) (没明白是什么鬼????)

3.如果想要使用NPM的方式安装Angular.js,必须先安装node.js.

步骤:去node.js官网https://nodejs.org/en/下载——》安装(安装完后电脑上就有一个npm的命令)——》在项目的根目录下,shift+右键——》open command window here(也可以通过Windows+R打开command 命令后切换到项目根目录的路径)——》输入:npm install angular——》enter——》在最下面看到路径的时候说明就已经安装结束了。

4. NPM:node package manager,是node的一个包管理工具

angularjs怎么开发web应用?angularjs开发web应用实例

angularjs怎么开发web应用?angularjs开发web应用实例

本篇文章主要的介绍了关于angularjs是如何开发一个简单的web应用的。想要知道的就赶紧来看看吧,里面详细的介绍了angularjs是如何开发web应用的。接下来我们一起来看文章吧

我们先熟悉下angularjs的实力:

目前不同类型的Web开发人员都在广泛使用AngularJS,这套卓越的框架也充分证明了自身满足各类不同需求的能力。作为一名Web开发人员,无论大家是刚刚入门的新手还是已经拥有丰富的实践经验,选择一款优秀的框架都是必要的工作前提,而AngularJS正是这样一套理想的解决方案。在使用AnguarJS的过程中,大家可以同时学习到更多与应用程序开发相关的知识以及如何构建起更出色、更具吸引力的应用成果。如果大家希望在应用程序的创建工作中采取各类最佳实践,那么AngularJS也能够带来极大的助益。总而言之,这套框架的强大功能与特性永远不会让有着应用开发需求的朋友们失望。

AngularJS拥有多项极为出彩的特性,今天我们就以一款简单的应用程序为例帮助大家了解如何对其加以运用。而在配合Firebase的情况下,我们这款简单但却具备实用性的应用能够轻松被构建完成。作为成品,开发完成的这款应用允许大家随时登入或者登录并在其上发布文章。

这是AngularJS与Firebase的介绍:

AngularJS是目前最受Web开发人员青睐的一套JavaScript MVC框架。如果大家希望创建出一款与众不同的应用,那么它绝对是各位的最佳选择——这要归功于其强大的HTML功能扩展特性。在AngularJS的帮助下,我们不再需要使用大量代码来构建应用程序,其惊人的关联性注入与绑定机制将让应用开发变得异常便捷。

在另一方面,Firebase能够为AngularJS提供出色的支持,这就免除了大家为所创建应用程序开发后端支持的烦恼。在Firebase的帮助下,我们的应用程序将能够以实时方式进行数据备份——当然,必要的API调用还是少不了的。

AngularJS本身虽然已经相当强大,但在Firebase的辅助下,我们将能够让自己的应用程序成果更上一层楼。

正文从这里开始,要注意了:

在着手利用AngularJS创建这款简单的小Web应用之前,大家首先需要下载angular-seed项目。下载完成之后,大家需要打开对应的下载目录并安装其中的关联性以实现运行。具体代码如下所示:

$ cd angular-seed 
$ npm install ## Install the dependencies
登录后复制

下一步则是利用以下代表启动节点服务器:

$ npm start ## Start the server
登录后复制

节点服务器启动并开始运行之后,我们需要打开浏览器并访问http://localhost:8000/app/index.html,此时其中会显示正在运行的默认应用。

接下来访问angular-seed项目文件夹下的该应用目录,应用程序的代码就保存在这里。

作为该应用程序的核心,app.js也将存放在该应用文件夹内。所有应用层级的模块与app.js内的路由都需要进行声明。

另外,大家还会在这里找到angular-seed的两个视图,即view 1与view 2。它们始终以默认形式存在。我们需要在应用文件夹中将这些视图删除。

现在开始我们要从零开始创建应用程序了:大家首先需要打开app.js并删除其中的全部已有代码。在app.js当中定义我们的应用程序路由,这要求大家使用ngRoute,AngularJS当中的模块之一。默认情况下app.js并不包含该模块,因此我们需要手动将其注入至应用程序当中从而加以使用。大家可以利用以下代码完成该AngularJS模块的添加工作:

angular.module(&#39;myApp&#39;, [ 
&#39;ngRoute&#39; 
])
登录后复制

ngRoute模块将带来一项重要的组件,即$routeProvider,其能够完美地对路由进行配置。我们需要使用以下代码将$routeProvider注入至angular-module的配置方法当中,从而完成路由定义:

''use strict''; 
angular.module(&#39;myApp&#39;, [ 
&#39;ngRoute&#39; 
]). 
config([''$routeProvider'', function($routeProvider) { 
// Routes will be here 
}]);
登录后复制

完成以上步骤后,现在我们就可以打开index.html了。将index.html当中的全部内容清除,只保留脚本引用以及div。

每一次进行路由变更时,我们都需要按照以上方法对div内容进行调整。(想学更多推荐PHP中文网,里面有你想要看的angularjs视频教程)

现在在视图当中创建符号:

我们需要在app目录当中创建一个新的文件夹并将其命名为home。在该文件夹当中,我们额外再创建两个文件夹,分别为home.js与home.html。首先打开home.html并将以下代码添加进去:

<!DOCTYPE html> 
<html ng-app="myApp"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<link rel="icon" href="http://www.php.cn/favicon.ico"> 
<title>AngularJS & Firebase Web App</title> 
<link href="http://www.php.cn/dist/css/bootstrap.min.css" rel="stylesheet"> 
<link href="http://www.php.cn/examples/signin/signin.css" rel="stylesheet"> 
<link href="justified-nav.css" rel="stylesheet"> 
</head> 
<body> 
<div> 
<div> 
<h2>AngularJS & Firebase App!</h2> 
</div> 
<form role="form"> 
<input type="email" placeholder="Email address" required="" autofocus=""> 
<input type="password" placeholder="Password" required=""> 
<label> 
<a href="#"> Sign Up</> 
</label> 
<buttontype="submit">Sign in</button> 
</form> 
</div> 
</body>
</html>
登录后复制

在home.js当中,我们则需要创建一套路由机制以访问home视图。另外还需要为由home视图创建的$scope设置一套控制器。控制器永远负责控制与之对应的特定视图。具体代码如下所示:

use strict&#39;; 
angular.module(&#39;myApp.home&#39;, [&#39;ngRoute&#39;]) 
// Declared route 
.config([&#39;$routeProvider&#39;, function($routeProvider) { 
$routeProvider.when(&#39;/home&#39;, { 
templateUrl: &#39;home/home.html&#39;, 
controller: &#39;HomeCtrl&#39; 
}); 
}]) 
// Home controller 
.controller(&#39;HomeCtrl&#39;, [function() { 
}]);
登录后复制

现在应用程序已经准备就绪。打开app.js,而后将myApp.home home模块添加到该应用当中。利用$routeProvider.otherwise方法为我们的应用程序声明一套指向home视图的默认路由,具体代码如下所示:

&#39;use strict&#39;; 
angular.module(&#39;myApp&#39;, [ 
&#39;ngRoute&#39;, 
&#39;myApp.home&#39;           // Newly added home module 
]). 
config([&#39;$routeProvider&#39;, function($routeProvider) { 
// Set defualt view of our app to home 
$routeProvider.otherwise({ 
redirectTo: &#39;/home&#39; 
}); 
}]);
登录后复制

如果大家希望显示自己的home页面,则将home.js添加到该应用的主HTML模板文件当中。要完成这项操作,请打开index.html文件并湢以下代码:

<script src="home/home.js"></script>
登录后复制

现在一切工作已经完成,该应用随时准备加以运行了!要开始使用这款应用,我们需要重启服务器并将自己的浏览器指向http://localhost:8000/app/index.html以访问登入页面,在这里大家可以实现对该应用程序的访问。

如果大家需要使用Firebase(具体理由如前文所述),则需要首先创建一个Firebase账户。在账户创建完成后,我们将屏幕上所显示的已创建应用url添加进来,而后点击“管理该应用”。

创建自己的应用程序感觉不错吧?Angular.js能够为此类开发工作提供我们所需要的一切。而且只需几分钟,我们的这款简单小应用就已经正式上线啦!

好了,以上就是本篇关于angularjs开发web应用的全部内容了(想学更多就拉PHP中文网,AngularJS使用手册栏目学习),你学会了吗?没学会的继续读,知道学会为止。有问题的可以在下方留言提问。

【小编推荐】

angularjs的路由原理你知道吗?这里有angularjs路由的详细原理

angularjs应用场景有哪些?angularjs的应用场景介绍

以上就是angularjs怎么开发web应用?angularjs开发web应用实例的详细内容,更多请关注php中文网其它相关文章!

Elixir Plug: 使用Plug开发Web应用程序

Elixir Plug: 使用Plug开发Web应用程序

需要一些 Elixir 的基础.

对于没有Erlang背景知识的同学, 有比较陡峭的学习曲线. 但是Elixir语言提供了一个库: Plug, 用它我们能够开发基于Erlang VM的Web应用.

本文采用 Cowboy 作为Web服务器, 来构造一个超级简单的Web应用. 它唯一的功能就是在浏览器上显示一个纯文本: "Hello World!". Plug 不是一个Web框架, 它不是用来替代 PhoenixSugar 的, 相反,这两个框架都使用了Plug来与底层的HTTP服务器(Cowboy)交互.

快速上手

通过命令mix new --sup plug_sample 创建一个项目.

mix.exs文件中添加依赖

defp deps do
  [{:cowboy, "~> 1.0.0"},
   {:plug, "~> 0.12"}]
end

安装依赖

mix deps.get

:cowboy:plug添加到application函数

def application do
  [applications: [:logger, :cowboy, :plug],
   mod: {PlugSample, []}]
end

启动Plug

PlugSample.Worker启动Plug, PlugSample.WorkerPlugSample.start/2启动

defmodule PlugSample.Worker do
  def start_link do
    Plug.Adapters.Cowboy.http PlugSample.MyPlug, []
  end
end

路由 Plug.Router

创建路由模块 lib/elixir_plug_examples/router.ex

defmodule ElixirPlugExamples.Router do
  use Plug.Router
  if Mix.env == :dev do
    use Plug.Debugger
  end
  plug :match
  plug :dispatch
  # Root path
  get "/" do
    send_resp(conn, 200, "This entire website runs on Elixir plugs!")
  end
end

路由模块创建完成后, 就可以通过iex -S mix来启动这个简单的Web应用程序了. 访问 http://localhost:4000/.

使用 curl -v http://localhost:4000 连接到服务器, -v 选项让我们可以看到响应头信息.

响应头如下:

> GET / HTTP/1.1
> Host: localhost:4000
> User-Agent: curl/7.43.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< server: Cowboy
< date: Tue, 12 Apr 2016 08:25:38 GMT
< content-length: 11
< cache-control: max-age=0, private, must-revalidate
< content-type: text/plain; charset=utf-8
< 
Hello world

完整的代码

本文网站的示例代码

https://github.com/developerworks/plug_sample

Plug 是什么?

  • Plug 是一段代码片段, 它一般插入到请求处理链条中的一个特定位置.

  • 多个Plug构成一个完整的处理链条

  • 请求首先被转换成%Plug.Conn{}结构, 并传递个链条中的第一个Plug, 第一个Plug处理(修改,增加,删除)完成后, 传递给后续的Plug

plug.png

两种类型的Plug

  • 函数的Plug
    函数Plug是一个接受%Plug.Conn和一个选项列表作为参数, 并返回一个%Plug.Conn函数, 例如:

    def my_plug(conn, opts) do
      conn
    end
  • 模块的Plug
    模块Plug是一个实现了init/1, 和run/2函数的模块:

    module MyPlug do
      def init(opts) do
        opts
      end
    
      def call(conn, opts) do
        conn
      end
    end

模块Plug有一个特点是: init/1在编译时运行, run/2在运行时运行. 由init/1返回的值会被传递给run/2. 因此尽量吧繁重的工作安排到init/1去执行对Plug的性能有非常大的提升.

在Phoenix中, 可以使用管道pipeline把多个Plug组合到一起.

比如:

针对浏览器的管道(输出HTML):

pipeline :browser do
  plug :accepts, ["html"]
  plug :fetch_session
  plug :fetch_flash
  plug :protect_from_forgery
  plug :put_secure_browser_headers
end

针对API接口的管道(输出JSON)

pipeline :api do
  plug :accepts, ["json"]
end

Plug 的测试

Plug提供了一个Plug.Test模块简化Plug的测试, 下面是一个例子

defmodule MyPlugTest do
  use ExUnit.Case, async: true
  use Plug.Test
  @opts AppRouter.init([])
  test "returns hello world" do
    # Create a test connection
    conn = conn(:get, "/hello")
    # Invoke the plug
    conn = AppRouter.call(conn, @opts)
    # Assert the response and status
    assert conn.state == :sent
    assert conn.status == 200
    assert conn.resp_body == "world"
  end
end

可用的Plugs

Plug Types Description
Plug.CSRFProtection 添加跨站点请求保护, 如果要使用Plug.Session,
这个是必须的;
Plug.Head HEAD请求转换为GET请求;
Plug.Logger 记录请求;
Plug.MethodOverride 重写指定在请求头中指定的方法;
Plug.Parsers 根据Content-Type负责解析请求体;
Plug.RequestId 设置一个请求ID, 用在日志中;
Plug.Session 处理会话管理和存储;
Plug.SSL 强制请求通过SSL;
Plug.Static 处理静态文件;
Plug.Debugger 调试页面
Plug.ErrorHandler 允许开发者定制错误页面, 而不是发送一个空页面.

Flask开发Web应用

Flask开发Web应用

安装python、easy_install和virtualenv

>easy_install virtualenv

>virtualenv venv

在当前目录下创建python的虚拟开发环境,其中有一个私有的Python解释器。

>.\venv\Scripts\activate

(venv)>

激活进入虚拟开发环境。

(venv)>pip install flask

(venv)>pip install flask-bootstrap

安装Flask及其依赖

默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板

 

今天的关于Golang开发web应用v0.02的分享已经结束,谢谢您的关注,如果想了解更多关于Angular JS 开发Web应用程序、angularjs怎么开发web应用?angularjs开发web应用实例、Elixir Plug: 使用Plug开发Web应用程序、Flask开发Web应用的相关知识,请在本站进行查询。

本文标签: