2017年11月22日 星期三

Gunicorn網頁伺服器閘道接口WSGI

綠色獨角馬Green Unicorn是 Python網頁伺服器閘道接口 WSGI
能快速部署python網頁框架
安裝法
sudo apt-get install python-pip
pip install gunicorn

建立一個練習檔案
vi myapp.py
輸入

# coding=UTF-8
def app(environ, start_response):
        data = b"阿堯老師你好 !\n"
        start_response("200 OK", [
            ("Content-Type", "text/plain"),
            ("Content-Length", str(len(data)))
        ])
        return iter([data])

啟動
 gunicorn --workers=2 myapp:app -b 192.168.16.5:85
啟動指令
gunicorn -w 4 -b 127.0.0.1:8000 myapp:app
w工作緒   b綁定   myapp專案名稱

網頁成果
http://192.168.16.5:85/

彰縣學校的dns主機是否代管了

有些彰縣學校主機dns已經接受代管
如何知道自己學校是否已經成功代管


貴校 申請了代管
(dns.xxx.chc.edu.tw 為自己學校dns)
ping dns.xxx.chc.edu.tw
得到163.28.83.xxx

自己國小的ip是163.23.xxx.xxx
已經成功代管了
因為163.28.83.xxx為中興大學ip

以下網段都是中興大學的網址
163.28.80.1 - 163.28.95.254

2017年11月16日 星期四

使用BeeGo框架

beego
go get github.com/astaxie/beego
安裝bee工具
go get github.com/beego/bee
建立新專案
bee new test1
執行專案
cd test1
bee run

網頁顯示也可以直接用html副檔名
func (c *MainController) Get() {
c.Data["Website"] = "beego.me"
c.Data["Email"] = "astaxie@gmail.com"
c.TplName = "index.html"
}

強迫停止服務
ps aux | grep bee | awk '{print $2}' | xargs kill -9

2017年11月15日 星期三

使用revel框架

https://revel.github.io/

注意自己的go路徑
例如
export GOPATH=$HOME/ex/p1
若有下載範例程式,將程式傳到
/home/yau/ex/p1/src

下載相關套件
go get github.com/revel/revel
go get -u -v github.com/revel/cmd/revel

建立專案
revel new myapp
執行
revel run myapp

環境檔conf
app.conf
埠號
http.port = 9000

使用iris框架


go get -u github.com/kataras/iris

建立一個專案目錄
建立main.go檔案

package main

import "github.com/kataras/iris"

func main() {
    app := iris.New()
    // Load all templates from the "./views" folder
    // where extension is ".html" and parse them
    // using the standard `html/template` package.
    app.RegisterView(iris.HTML("./views", ".html"))

    // Method:    GET
    // Resource:  http://localhost:8080
    app.Get("/", func(ctx iris.Context) {
        // Bind: {{.message}} with "Hello world!"
        ctx.ViewData("message", "Hello world!")
        // Render template file: ./views/hello.html
        ctx.View("hello.html")
    })

    // Method:    GET
    // Resource:  http://localhost:8080/user/42
    //
    // Need to use a custom regexp instead?
    // Easy;
    // Just mark the parameter's type to 'string'
    // which accepts anything and make use of
    // its `regexp` macro function, i.e:
    // app.Get("/user/{id:string regexp(^[0-9]+$)}")
    app.Get("/user/{id:long}", func(ctx iris.Context) {
        userID, _ := ctx.Params().GetInt64("id")
        ctx.Writef("User ID: %d", userID)
    })

    // Start the server using a network address.
    app.Run(iris.Addr(":8080"))
}

建立一個次目錄views放網頁hello.html
<!-- file: ./views/hello.html -->
<html>
<head>
    <title>你好練習</title>
</head>
<body>
    <h1>{{.message}}</h1>
</body>
</html>
執行程式
go run main.go
安裝rizla這樣網頁改變才不用一直重新啟動服務
go get -u github.com/kataras/rizla

往後啟動程式 輸入  rizla main.go




強制停止go程式執行緒

ps aux | grep go | awk '{print $2}' | xargs kill -9 練習時 常有些port佔用 無法釋放,就用此指令

2017年11月14日 星期二

debian上安裝golang

 sudo apt-get update
 抓go語言1.9.2
 wget https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz

 解開
 tar -xvf go1.9.2.linux-amd64.tar.gz
移動目錄
 sudo mv go /usr/local




vi ~/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/ex/p1
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH


立即生效
source ~/.profile


 顯示版本
 $ go version

go version go1.9.2 linux/amd64

顯示環境
$ go env

簡易練習
mkdir ex
cd ex
vi web.go



package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "GO語言, I love %s!", r.URL.Path[1:])
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

編譯(注意web.go要utf-8編碼才能顯示中文)
go build web.go

編譯好會產生一個執行檔
 執行
 ./web

192.168.0.5:8080 就會看到網頁

問題:關閉終端機,服務就消失
解決1:裝tmux
sudo apt-get install tmux

關閉終端機服務還能繼續跑

tmux new -s  名稱
例如 tmux new -s my8080
這樣才知道自己的服務

分割 / 切割視窗 (切出來的叫pane)
Ctrl-b q Show pane numbers
Ctrl-b alt按著,再按上下左右, 可以調整視窗大小
Ctrl-b % 直切
Ctrl-b :"split-window" 橫切
Ctrl-b Ctrl-o 調換 切割視窗 的 位置
Ctrl-b o Switch to the next pane
Ctrl-b 上下左右 跳到上下左右的分割視窗
Ctrl-b ! 將目前的pane抽成window
Ctrl-b x 移除目前的pane

Ctrl-b + c:建立新的視窗;
Ctrl-b + d:卸載目前的 client;
Ctrl-b + l:與先前選擇的視窗間切換;
Ctrl-b + n:移動到下個視窗;
Ctrl-b + p:移動到上個視窗;
Ctrl-b + &:刪除目前的視窗;
Ctrl-b + ,:重新命名目前的視窗;
Ctrl-b + %:將目前的視窗分離到兩個區塊;
Ctrl-b + q:顯示各分割區塊的號碼(用來切換到不同的區塊)
Ctrl-b + o:切換到下個區塊;
Ctrl-b + ?:列出所有快捷鍵的說明;
Ctrl-b + w:列出目前 clinet 的視窗,可以用數字鍵切換;


按住ctrl 和b  再按d離開

顯示服務
tmux ls
關閉服務
tmux attach -t 編號




解決2:採用linux supervisor





2017年11月13日 星期一

阿堯老師文章

1、碩士論文:家庭教育網路學習活動之實施及成效評估---以母子衝突議題為例
2、網際網路與網路成癮議題之探討(2003年海峽兩案小學教育學術研討會,國立嘉義大學)
3、有趣的網路閱讀與測驗(第二屆全球華人教師教學研討會,國立中央大學)
4、小小孩可以玩電腦嗎?(學前教育,2004,2)
5、孩子玩電腦時,爸媽該注意什麼?(學前教育,2004,2)

阿堯老師經歷

1994.04 中華民國電腦軟體設計技術士
1997.05 海軍陸戰隊優良士官兵
1998.12 榮獲全國「歡樂耶誕頁」網頁創意大賽教師組最佳動畫獎
1999.06   彰化縣辦理成長團體認真負責獎
2000.03 彰化縣交通安全教具製作競賽電腦輔助教學組第二名
2000.05 帶領籃球隊取得彰化縣八十八學年度國小樂趣化籃球賽冠軍
2000.07 個人網站「益智遊樂網」榮獲博碩出版社所出書籍推薦
2000.08  接受台北New98電台採訪
2000.09  個人網站「快樂小Baby」榮獲孕媽咪雜誌推薦
2000.10  榮獲中華民國第十四屆電腦輔助教學軟體設計優良獎
2000.10  榮獲彰化縣運用資訊科技媒體融入教學比賽佳作
2000.10  指導學生參加彰化縣89學年度網路競賽,榮獲特優
2000.03 彰化縣八十九學年度教師自製教學媒體(電腦多媒體組)特優
2000.05 「2001年十大兒童優質網站」之一 「益智遊樂網」
2001.10  榮獲中華民國第十五屆電腦輔助教學軟體設計優良獎
2001.11  帶領籃球隊取得彰化縣九十學年度縣長盃國小男子組籃球賽亞軍
2002.01  帶領籃球隊取得彰化縣九十年度議長盃國小男子組籃球賽季軍
2002.05  帶領籃球隊取得彰化縣九十學年度教育盃國小男子組籃球賽季軍
2002.06.26 教育部資訊融入教材教案  GIF輕鬆派(佳作)
2002.06.26 教育部資訊融入教材教案  蒙古王朝(優等)
2002.12 台北市九十一學年度多媒體單元教材甄選 (佳作)有趣的小動物
2002.12 台北市九十一學年度多媒體單元教材甄選  (入選) 東西南北找金幣
2003.11 台北市九十二學年度多媒體單元教材甄選  (入選) 快樂小海龜
2004.09 彰化縣特殊優良教師
2005.05.29 指導湖南國小「連思源」同學參加亞卓市、中華電信單字快手,初賽全國第一;決賽第二
2005.06  指導學生參加GO!GO!GO!全國三對三籃球賽榮獲冠軍
...
...
2017.11
106年度教育部有愛無礙教材/多媒體APP教材比賽 ,多媒體APP組第一名
2018.1
第五屆全國特殊教育教材教具、輔具暨電腦輔助教學軟體設計比賽 佳作


2017年11月2日 星期四

visualStudioCode小技巧

網頁標籤
br 按enter
產生 <br>

table 按enter
產生<table></table>

----------------------------------
一次多個游標(方便一次性加入同樣字串)

第一列  |
第二列  |(按住alt 第二列點一下 新增一個游標  )
第三列  |(按住alt 第三列點一下 新增一個游標  )

輸入字串 123 變成
第一列   123
第二列   123
第三列   123

---------------------------------------
文字快速註解
全選ctrl+ /
---------------------
改變文字編碼
右下角 big5或utf-8或其他編碼
Reopen wtin Encoding

ctrl+G 跳到某一行