ウェブに行く
Golang 高性能プログラミング言語です.それは素晴らしい機能がありますが、Webパーツは神秘的かもしれないときに初心者です.
インストール
あなたが必要install Golang あなたのマシンでこのチュートリアルを読む前に.
始める
ゴランはかなり近いC , しかし、それは簡単に組み込みの機能や他のものを拡張するIHOのGOです.あなたはプロジェクトの広範な範囲のためにGOを使用することができます.
サーバ/クライアント
ゴランは、Webアプリケーションにも優れています.考えてください.何がWebアプリケーションを実行する必要がありますか?
クライアントとサーバーが必要です.ブラウザは優れたクライアントになります.
サーバーにリクエストを送信するブラウザでURLを入力します.サーバはリクエストを処理し、結果を返す.ブラウザが結果を表示します.
HTTPパッケージ
ゴー・アンHTTP package そのために.
アクションでそれを見るために、あなたの試みパスで新しいファイルを作成して、例えば、以下をペーストしてください.
両方の機能が必要
我々は
コードの改善
上記のコードは、適切ですが、エラーを処理しません.また、コードを分割するのもいいでしょう.
Goroutinesと並行性
GoroutineはGoランタイムによって管理される軽量スレッドです.
Source
それぞれのHTTP要求に対してGoはGoroutineと呼ぶものを実行します.自動的に同時実行を使用します.
グラブリクエスト
我々のおかげで
パラメータを取得する
Webアプリケーションで検索機能を実装したいとしましょう.これから始めることができます.
次のようになります.
ここで検索入力でHTMLを追加します.次のセクションでHTMLテンプレートを含める方法を見ます.
POSTリクエストとテンプレート
HTMLを加えるためにテンプレートを作成することは可能です.例えば、
そのフォームをページに表示する必要があります.それを達成するためにtemplate package :
セキュリティ免責事項
私はそれが余分なクールな機能を持っているので、テンプレートパッケージが好きで、いくつかの重要なセキュリティポイントの世話をする.あなたも、前後にデータを渡すことができる、それは試してみて、それは優秀なパッケージです.
確かにここではすぐにどのようにすぐにゴランでWebものをレンダリングする方法を示すことです.あなたは実際の生活の中でそのようなパスワードを処理しないでください.同様に、それを使用する前に任意のデータをエスケープする必要があります、特にユーザーの入力を信頼し、特に検索機能を作成する.
包む
閉じるこの動画はお気に入りから削除されています.ゴランは非常に簡単であり、Cよりも簡単です構文は短く簡潔です.
HTTPパッケージは強力で効率的です.あなたは生産でそれを使用することができます.
インストール
あなたが必要install Golang あなたのマシンでこのチュートリアルを読む前に.
始める
ゴランはかなり近いC , しかし、それは簡単に組み込みの機能や他のものを拡張するIHOのGOです.あなたはプロジェクトの広範な範囲のためにGOを使用することができます.
サーバ/クライアント
ゴランは、Webアプリケーションにも優れています.考えてください.何がWebアプリケーションを実行する必要がありますか?
クライアントとサーバーが必要です.ブラウザは優れたクライアントになります.
サーバーにリクエストを送信するブラウザでURLを入力します.サーバはリクエストを処理し、結果を返す.ブラウザが結果を表示します.
HTTPパッケージ
ゴー・アンHTTP package そのために.
アクションでそれを見るために、あなたの試みパスで新しいファイルを作成して、例えば、以下をペーストしてください.
Main.go
:package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi, folks!")
})
http.ListenAndServe(":777", nil)
}
次に端末を開き、次のように入力します.go run Main.go
それからhttp://localhost:777 .HandleFunc()
URLをマッピングするListenAndServe()
HTTPサーバを起動します.両方の機能が必要
ResponseWriter
, http.Request
あるHandleFunc
. 最初のものはブラウザ(“Writer”)でものを表示することを可能にします.第2のものは要求をつかんでいるのを許容します.我々は
fmt
フォーマットされたI/Oを扱うパッケージです.コードの改善
上記のコードは、適切ですが、エラーを処理しません.また、コードを分割するのもいいでしょう.
package main
import (
"fmt"
"log"
"net/http"
)
func sayHello(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi, folks!")
}
func main() {
http.HandleFunc("/", sayHello)
if err := http.ListenAndServe(":777", nil); err != nil {
log.Fatal(err)
}
}
ここではまだ私たちのhandlefuncを持っていますが、少し読みやすく、ログパッケージでエラーを記録します.Goroutinesと並行性
GoroutineはGoランタイムによって管理される軽量スレッドです.
Source
それぞれのHTTP要求に対してGoはGoroutineと呼ぶものを実行します.自動的に同時実行を使用します.
グラブリクエスト
我々のおかげで
HandleFunc
, 簡単にパラメータやその他の情報を抽出することができます.パラメータを取得する
Webアプリケーションで検索機能を実装したいとしましょう.これから始めることができます.
package main
import (
"fmt"
"log"
"net/http"
)
func search(w http.ResponseWriter, r *http.Request) {
s := r.URL.Query().Get("s")
fmt.Fprintf(w, "You have searched '%v'.", s)
}
func main() {
http.HandleFunc("/", search)
if err := http.ListenAndServe(":777", nil); err != nil {
log.Fatal(err)
}
}
端末をオープンするgo run Main.go
, そして、http://localhost:777/?s=chocolate 次のようになります.
You have searched 'chocolate.'
ここで検索入力でHTMLを追加します.次のセクションでHTMLテンプレートを含める方法を見ます.
POSTリクエストとテンプレート
HTMLを加えるためにテンプレートを作成することは可能です.例えば、
signin.html
.そのフォームをページに表示する必要があります.それを達成するためにtemplate package :
{{define "signin"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sign in</title>
</head>
<body>
<form action="/signin" method="post">
<label for="email">Your email:</label>
<input type="email" id="email" name="email" required> <br />
<label for="passwd">Your password:</label>
<input type="passwd" id="passwd" name="passwd" required><br />
<input type="submit" value="Sign in">
</form>
</body>
</html>
{{end}}
そして、Goスクリプトでは、package main
import (
"log"
"html/template"
"net/http"
)
func signin(w http.ResponseWriter, r *http.Request) {
t := template.New("Sign in")
t = template.Must(t.ParseFiles("signin.html"))
err := t.ExecuteTemplate(w, "signin", r)
if err != nil {
log.Fatalf("Template execution: %s", err)
}
}
func main() {
http.HandleFunc("/signin", signin)
if err := http.ListenAndServe(":777", nil); err != nil {
log.Fatal(err)
}
}
しかし、我々はまた、ユーザーからの提出データをしたい.我々は、我々の習慣を使うことができますsignin
HTTPメソッドがあるときにフォームを処理する関数POST
:package main
import (
"log"
"fmt"
"html/template"
"net/http"
)
func signin(w http.ResponseWriter, r *http.Request) {
t := template.New("Sign in")
t = template.Must(t.ParseFiles("signin.html"))
err := t.ExecuteTemplate(w, "form", r)
if err != nil {
log.Fatalf("Template execution: %s", err)
}
if r.Method == "POST" {
if err := r.ParseForm(); err != nil {
log.Fatal(err)
}
fmt.Fprintf(w, "email is %v and password is %v", r.Form["email"], r.Form["passwd"])
}
}
func main() {
http.HandleFunc("/signin", signin)
if err := http.ListenAndServe(":777", nil); err != nil {
log.Fatal(err)
}
}
ランgo run Main.go
フォームに戻るhttp://localhost:777/signin 提出する.例えば、メールとパスワードの両方を表示します.email is [[email protected]] and password is [cheater!alpha]
セキュリティ免責事項
私はそれが余分なクールな機能を持っているので、テンプレートパッケージが好きで、いくつかの重要なセキュリティポイントの世話をする.あなたも、前後にデータを渡すことができる、それは試してみて、それは優秀なパッケージです.
確かにここではすぐにどのようにすぐにゴランでWebものをレンダリングする方法を示すことです.あなたは実際の生活の中でそのようなパスワードを処理しないでください.同様に、それを使用する前に任意のデータをエスケープする必要があります、特にユーザーの入力を信頼し、特に検索機能を作成する.
包む
閉じるこの動画はお気に入りから削除されています.ゴランは非常に簡単であり、Cよりも簡単です構文は短く簡潔です.
HTTPパッケージは強力で効率的です.あなたは生産でそれを使用することができます.
Reference
この問題について(ウェブに行く), 我々は、より多くの情報をここで見つけました https://dev.to/jmau111/go-for-the-web-39j5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol