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」可看到執行結果:
沒有留言:
張貼留言