2022年9月7日 星期三

Flask專案發布到Deta

Deta是一個可以代替Heroku執行Python應用程式的伺服器空間,它完全免費(Deta沒有付費方案),沒有應用程式數量限制。Deta不支援Sqlite與PostgreSQL資料庫(Deta使用自己開發的NoSQL資料庫),因此建議不使用資料庫的應用程式才發布到Deta。

建立Deta帳號

開啟「https://deta.sh/」網頁,按「Dashboard」鈕申請一個Deta新帳號。

輸入帳號、密碼、電子郵件後按「Sign Up」,開啟電子郵件進行確認就完成建立新帳號。

建立新專案

登入Deta,按「Create First Project」鈕。

Region欄位選擇「Auto」,表示讓系統自動選取最適合的區域伺服器主機。

安裝Deta Client及建立micro

開啟Windows Powershell,執行下面命令安裝Deta Client。

iwr https://get.deta.dev/cli.ps1 -useb | iex

Deta的應用程式稱為「micro」。建立micro的語法為:

deta new --python micro名稱

開啟命令提示字元視窗,首先登入Deta:執行下面命令,會自動開啟瀏覽器登入Deta。

切換到要儲存應用程式的資料夾(此處使用<C:\Users\rUse\.deta>),輸入下列命令建立名稱為show的micro:

deta new --python show

建立完成後會顯示micro資訊。注意endpoint項目值,這是發布後應用程式的網址,將其記錄下來。同時會在<C:\Users\rUse\.deta>產生<show>資料夾,內含<.deta>資料夾及<main.py>檔案。

準備Flask專案

將<main.py>的程式碼修改為:

from flask import Flask

app = Flask(__name__)


from flask import render_template

@app.route('/display')

def display():

    person1={"name":"Amy","phone":"049-1234567","age":20}

    person2={"name":"Jack","phone":"02-4455666","age":25}

    person3={"name":"Nacy","phone":"04-9876543","age":17}

    persons=[person1,person2,person3]

    return render_template('show.html', **locals())


if __name__ == '__main__':

    app.run()

在<show>資料夾新增<templates>資料夾,在<templates>資料夾新增<show.html>,程式碼為:

<!DOCTYPE html>

<html>

<head>

    <meta charset='utf-8'>

    <title>基本資料</title>

</head>

<body>

    <h3>   

    {% for person in persons%}

       <ul>

           <li>姓名:{{person.name}}</li>

           <li>手機:{{person.phone}}</li>

           <li>年齡:{{person.age}}</li>

       </ul>

    {% endfor %}  

    </h3>

</body>

</html>

在<show>資料夾新增<requirements.txt>,內容為Flask專案會使用的模組。本專案未使用任何模組,因此內容為:

flask

發布專案到Deta

開啟命令提示字元視窗,切換到Flask專案資料夾(此處為<C:\Users\rUse\.deta\show>),執行下面命令完成發布:

deta deploy

查看發布結果:開啟「https://60wbku.deta.dev/display」網頁就會顯示基本資料,表示發布成功了!

如果要修改專案內容,修改後在命令提示字元視窗執行「deta deploy」就可重新發布。

如果忘記應用程式網址,在命令提示字元視窗執行「deta details」就會顯示應用程式詳細內容。

Deta伺服器管理應用程式

於瀏覽器登入Deta,點選「Dashboard」進入管理頁面,「Micros」項目包含所有應用程式,點選應用程式名稱就進入該應用程式管理界面,右上角是網址。

自訂網址名稱:點選「Domains」頁籤,按「Add a subdomain」鈕。

輸入網址名稱(此處輸入「showjeng」,此名稱不能與任何應用程式的名稱重複),按「Save」鈕完成。

開啟「https://showjeng.deta.dev/display」可看到執行結果:


沒有留言:

張貼留言