flask實際操刀之邁出第一步

接上節,小編已經完成了python+flask開發環境的配置,下一步就開始進行實際的開發工作。各位看官不禁要問,怎麼沒有看見前期的什麼的需求分析之類的。這裡小編要解釋一下,在自己的項目開發中,這些當然都是必不可少的,只不過有些需求其實已經很明確了,目前主要著眼於系統的實現,體驗一把flask在web開發方面的酸爽程度。

flask實際操刀之邁出第一步

編寫主程序

在這裡主程序是指flask應用運行的那個py文件,這個文件具體要做些什麼呢?主要完成如下幾點:

  • 創建flask應用程序實例
  • 配置應用程序各入口模塊的route
  • 編寫運行主函數及配置端口

下面我們就按照上述的幾個步驟逐步推進:

  1. 創建flask應用程序實例

首先在source文件路徑下建立app.py文件,在其中寫入文件的字符集和依賴的模塊:

# coding = utf-8
import flask

然後就開始創建flask應用的實例:

app = Flask(__name__)

是不是很簡單!

  1. 配置應用程序各入口模塊的route

這裡假設我們入口的路由是"/",那麼我們可以定義一個對應的響應方法:

@app.route('/')
def index():
return render_template('index.html')

那麼其中的"@app.route('/')"就將訪問的路由和響應請求的方法連接在了一起,其對應於請求的響應結果是通過jinja2模板引擎渲染index.html

  1. 編寫運行主函數及配置端口

完成了以上代碼後,再完成主運行函數的編寫如下:


if __name__ == '__main__':
app.run(port=5000)

端口的指定要使用run方法中的port參數。到這裡,一個最基本的主程序就已經完成了,那麼我們通過昨天介紹的方法在vscode中運行一下,讓服務器跑起來:

flask實際操刀之邁出第一步

然後在瀏覽器中訪問127.0.0.1:5000,看到如下結果:

flask實際操刀之邁出第一步

怎麼搞的,為什麼前端的效果都沒有出來?很明顯,這是頁面在進行暫時的時候,沒有找到所引用的css和js所致,這麼解決呢?這裡需要告訴系統這些靜態資源的存放位值,我們把flask實例化的代碼修改一下,改為:

app = Flask(__name__, template_folder=r'..\\views',static_folder=r'..\\views', static_url_path='')

注意一下py文件和網頁文件的路徑關係,py在source之下,index.html在views之下,而source和views為同級目錄,體驗一下!其實還有個解決辦法,因為flask的默認靜態資源路徑是在static路徑下,你按照這個規則搭建項目也行,但小編把h-ui的一堆東西全部扔到了views下面,所以使用了static_folder=r'..\\views',至於static_url_path在某些場景下可以不設置,但是這是flask一個比較坑的設計,最好還是指定為空字符串。完成以上修改後,在運行程序,訪問127.0.0.1:5000,結果就正常了:

flask實際操刀之邁出第一步


分享到:


相關文章: