Go 언어~WEB 어플리케이션 개발편~
9574 단어 Go
입문
안녕하세요.나는 모 학교에서 프로그래밍 등을 배우는 서버 분야의 프로그래머다.
그럼 이번에는 3, 4회 정도로'Go 언어 열심히 배웠어요~ WEB 앱 개발편~'을 소개합니다.
그럼 바로 가보겠습니다
가져오기
패키지의 를 가져옵니다.
서버 시작
net/http의 ListenAndServe()를 사용합니다.http.ListenAndServe("サーバ名:ポート番号", ハンドラ)
*첫 번째 파라미터의 서버 이름을 생략하면localhost입니다.
*두 번째 매개 변수는 통상적으로nil일 수 있다.
HTML 파일 읽기
net/http의 Handle()을 사용합니다.http.Handle("アクセス先ルート", http.FileServer(http.Dir("読み込むHTMLファイルのディレクトリ名")))
<다음 예제>
○ static 디렉토리의 HTML 파일 읽기
< 디렉토리 구조>
|-static
| |- index.html
|-server.go
server.gofunc main() {
http.Handle("/", http.FileServer(http.Dir("static"))))
http.ListenAndSeave(":9999", nil)
}
http://localhost:9999static 디렉터리의 index에 접근합니다.html로 불리다.
템플릿 파일 작업
정적 페이지가 아닌 Go로 동적 페이지를 만들 때 사용
가져오기
패키지의 <"html/template>를 가져옵니다.또는 <텍스트/텍스트>를 가져옵니다.
*text/template: 일반 템플릿용 패키지입니다.
*html/template: 자리 차지 문자열로 변환할 html 라벨을 자리 차지 문자열로 변환합니다.
템플릿 파일의 위치 지정
path, _ := os.Getwd()//カレントディレクトリの取得(osパッケージをインポート)
t := template.Must(template.ParseFiles(path + "テンプレートファイルのある所のパス"))
템플릿 그리기
t.ExecuteTemplate(http.ResponseWrite, "テンプレートファイル名", 送る値)
등록 프로세서
net/http 패키지의 HundleFunc()를 사용합니다.http.HandleFunc("アクセス先ルート", クロージャ)
func クロージャ(w http.ResponceWrite, r *http.Request {
//アクセス先ルートにアクセスされたときに実行する事を記述
}
템플릿 파일 값 표시 (동작 표시)
템플릿에 전달되는 매개변수 내보내기 {{ . }}
템플릿에 전달되는 값은 구조 {{ .構造体のフィールド名 }}
조건 브랜치 {{ if .(構造体のフィールド名) }}
{{ else }}
{{ end }}
순환 {{ range .(構造体のフィールド名) }}
{{ else }}
{{ end }}
*전달된 매개 변수는 배열이나 절단 등 배열 시스템만 전달할 수 있다 템플릿에 전달되는 매개 변수가 비어 있지 않으면 처리 1 템플릿에 전달되는 매개 변수가 비어 있지 않으면 처리 1이 비어 있으면 출력 처리 2입니다. {{ with .(構造体のフィールド名) }}
//処理1
{{ else }}
//処理2
{{ end }}
<다음 예제>
○static 디렉터리의 템플릿 파일 읽기
< 디렉토리 구조>
|-static
| |- index.html.tpl
|-server.go
server.gofunc clockHandler(w http.ResponseWriter, r *http.Request) {
path, _ := os.Getwd()
t := template.Must(template.ParseFiles( path + "/static/index.html.tpl"))
if err := t.ExecuteTemplate(w, "index.html.tpl", time.Now()); err != nil {
log.Fatal(err)
}
}
func main() {
http.HandleFunc("/", clockHandler)
http.ListenAndSeave(":9999", nil)
}
index.html.tpl<!DOCTYPE html>
<html>
<body>
今現在{{ .Hour }}時{{ .Minute }}分です。
</body>
</html>
http://localhost:9999static 디렉터리의 index에 접근합니다.html로 불리다.
이상
무슨 잘못이 있으면 연락 주세요.
끝까지 읽어줘서 고마워요.
다음에'Go 언어 열심히 배웠어요~ WEB 앱 개발편②~'
가능하다면 이쪽을 보세요.
"고언어~기본문법편①(변수, 상수, 조건분지, 중복처리)~"에 대해여기부터.
Go언어~기본문법편②(배열)~에 관하여여기부터.
Go언어~기본문법편③(함수)~에 관하여여기부터.
"Go언어~기본문법편④(지침, 구조체)~를 열심히 배웠습니다"에 대해서는 여기를 참조하십시오.
'고어학~포장편~'에 대해여기부터.
"고언어~데이터베이스 연결(MySQL)편을 열심히 배웠어요~"에 대해여기부터.
추가 기록(2018/10/20)
추가 동작 표시
변수의bool값에 대해 not 연산 {{ not 引数 }}
매개 변수 1과 매개 변수 2로 and 연산 {{ and 引数1 引数2 }}
매개 변수 1과 매개 변수 2로 or 연산 {{ or 引数1 引数2 }}
이스케이프 매개변수 {{ html 引数 }}
템플릿 변수 {{ $変数名 := 値 }}
템플릿에 전달되는 매개 변수 그룹에서 크기를 되돌려줍니다 {{ len 引数 }}
Reference
이 문제에 관하여(Go 언어~WEB 어플리케이션 개발편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/watataku8911/items/23dafc566e7766599f77
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
패키지의
서버 시작
net/http의 ListenAndServe()를 사용합니다.http.ListenAndServe("サーバ名:ポート番号", ハンドラ)
*첫 번째 파라미터의 서버 이름을 생략하면localhost입니다.
*두 번째 매개 변수는 통상적으로nil일 수 있다.
HTML 파일 읽기
net/http의 Handle()을 사용합니다.http.Handle("アクセス先ルート", http.FileServer(http.Dir("読み込むHTMLファイルのディレクトリ名")))
<다음 예제>
○ static 디렉토리의 HTML 파일 읽기
< 디렉토리 구조>
|-static
| |- index.html
|-server.go
server.gofunc main() {
http.Handle("/", http.FileServer(http.Dir("static"))))
http.ListenAndSeave(":9999", nil)
}
http://localhost:9999static 디렉터리의 index에 접근합니다.html로 불리다.
템플릿 파일 작업
정적 페이지가 아닌 Go로 동적 페이지를 만들 때 사용
가져오기
패키지의 <"html/template>를 가져옵니다.또는 <텍스트/텍스트>를 가져옵니다.
*text/template: 일반 템플릿용 패키지입니다.
*html/template: 자리 차지 문자열로 변환할 html 라벨을 자리 차지 문자열로 변환합니다.
템플릿 파일의 위치 지정
path, _ := os.Getwd()//カレントディレクトリの取得(osパッケージをインポート)
t := template.Must(template.ParseFiles(path + "テンプレートファイルのある所のパス"))
템플릿 그리기
t.ExecuteTemplate(http.ResponseWrite, "テンプレートファイル名", 送る値)
등록 프로세서
net/http 패키지의 HundleFunc()를 사용합니다.http.HandleFunc("アクセス先ルート", クロージャ)
func クロージャ(w http.ResponceWrite, r *http.Request {
//アクセス先ルートにアクセスされたときに実行する事を記述
}
템플릿 파일 값 표시 (동작 표시)
http.ListenAndServe("サーバ名:ポート番号", ハンドラ)
net/http의 Handle()을 사용합니다.
http.Handle("アクセス先ルート", http.FileServer(http.Dir("読み込むHTMLファイルのディレクトリ名")))
<다음 예제>○ static 디렉토리의 HTML 파일 읽기
< 디렉토리 구조>
|-static
| |- index.html
|-server.go
server.go
func main() {
http.Handle("/", http.FileServer(http.Dir("static"))))
http.ListenAndSeave(":9999", nil)
}
http://localhost:9999static 디렉터리의 index에 접근합니다.html로 불리다.템플릿 파일 작업
정적 페이지가 아닌 Go로 동적 페이지를 만들 때 사용
가져오기
패키지의 <"html/template>를 가져옵니다.또는 <텍스트/텍스트>를 가져옵니다.
*text/template: 일반 템플릿용 패키지입니다.
*html/template: 자리 차지 문자열로 변환할 html 라벨을 자리 차지 문자열로 변환합니다.
템플릿 파일의 위치 지정
path, _ := os.Getwd()//カレントディレクトリの取得(osパッケージをインポート)
t := template.Must(template.ParseFiles(path + "テンプレートファイルのある所のパス"))
템플릿 그리기
t.ExecuteTemplate(http.ResponseWrite, "テンプレートファイル名", 送る値)
등록 프로세서
net/http 패키지의 HundleFunc()를 사용합니다.http.HandleFunc("アクセス先ルート", クロージャ)
func クロージャ(w http.ResponceWrite, r *http.Request {
//アクセス先ルートにアクセスされたときに実行する事を記述
}
템플릿 파일 값 표시 (동작 표시)
path, _ := os.Getwd()//カレントディレクトリの取得(osパッケージをインポート)
t := template.Must(template.ParseFiles(path + "テンプレートファイルのある所のパス"))
t.ExecuteTemplate(http.ResponseWrite, "テンプレートファイル名", 送る値)
http.HandleFunc("アクセス先ルート", クロージャ)
func クロージャ(w http.ResponceWrite, r *http.Request {
//アクセス先ルートにアクセスされたときに実行する事を記述
}
{{ . }}
{{ .構造体のフィールド名 }}
{{ if .(構造体のフィールド名) }}
{{ else }}
{{ end }}
{{ range .(構造体のフィールド名) }}
{{ else }}
{{ end }}
*전달된 매개 변수는 배열이나 절단 등 배열 시스템만 전달할 수 있다{{ with .(構造体のフィールド名) }}
//処理1
{{ else }}
//処理2
{{ end }}
<다음 예제>○static 디렉터리의 템플릿 파일 읽기
< 디렉토리 구조>
|-static
| |- index.html.tpl
|-server.go
server.go
func clockHandler(w http.ResponseWriter, r *http.Request) {
path, _ := os.Getwd()
t := template.Must(template.ParseFiles( path + "/static/index.html.tpl"))
if err := t.ExecuteTemplate(w, "index.html.tpl", time.Now()); err != nil {
log.Fatal(err)
}
}
func main() {
http.HandleFunc("/", clockHandler)
http.ListenAndSeave(":9999", nil)
}
index.html.tpl<!DOCTYPE html>
<html>
<body>
今現在{{ .Hour }}時{{ .Minute }}分です。
</body>
</html>
http://localhost:9999static 디렉터리의 index에 접근합니다.html로 불리다.이상
무슨 잘못이 있으면 연락 주세요.
끝까지 읽어줘서 고마워요.
다음에'Go 언어 열심히 배웠어요~ WEB 앱 개발편②~'
가능하다면 이쪽을 보세요.
"고언어~기본문법편①(변수, 상수, 조건분지, 중복처리)~"에 대해여기부터.
Go언어~기본문법편②(배열)~에 관하여여기부터.
Go언어~기본문법편③(함수)~에 관하여여기부터.
"Go언어~기본문법편④(지침, 구조체)~를 열심히 배웠습니다"에 대해서는 여기를 참조하십시오.
'고어학~포장편~'에 대해여기부터.
"고언어~데이터베이스 연결(MySQL)편을 열심히 배웠어요~"에 대해여기부터.
추가 기록(2018/10/20)
추가 동작 표시
{{ not 引数 }}
{{ and 引数1 引数2 }}
{{ or 引数1 引数2 }}
{{ html 引数 }}
{{ $変数名 := 値 }}
{{ len 引数 }}
Reference
이 문제에 관하여(Go 언어~WEB 어플리케이션 개발편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/watataku8911/items/23dafc566e7766599f77텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)