對于一個后端的初學者而言,小編覺得其實學習什么語言什么框架對初學者來說應該是一種負擔。為什么這么說呢,因為初學者往往不知道什么是請求什么是響應,更不必說session和cookie了。所以對于后端的初學者而言,先學習一種簡單的功能完備的框架可以讓初學者對整個web應用的開發(fā)有個簡單而全面的了解。而今天小編要介紹的,是一款輕量級的python web開發(fā)框架,他就是Flask。
介紹
Flask是一個輕量級的web應用框架,它擁有高度的可定制性。相較于其他同類型的框架,它的使用更加靈活輕便。而且由于它高度封裝了python的服務器網關接口,使得它的代碼更加簡潔易懂,新手也可以很容易進行上手。
應用
python廣受詬病的一點就是其性能并不如java等編譯型語言,flask作為一個輕量型的web框架在性能優(yōu)化上面也不如同為python框架的Django和Tornado。但是因為它輕量且開發(fā)快速,所以用來構建小型的web應用程序綽綽有余,利用flask來進行原型開發(fā)也是一個不錯的選擇(苦惱于畢業(yè)設計的計算機專業(yè)學生終于有了更輕松的選擇)。
比較
這是Flask的一個簡單的返回helloworld的頁面,只有一個 ?app.py? 文件,直接解釋執(zhí)行這個python文件就能使用這個web應用。
from flask import Flask
app = Flask(__name__) # 初始化一flask應用
@app.route('/hello') # 這個注解表示如果傳入路徑是/hello的話執(zhí)行hello_world函數(shù)
def hello_world():
return 'Hello World!' # 返回helloworld,也可以返回一個頁面
if __name__ == '__main__':
app.run() # 運行這個flask應用
這是java的一個簡單的返回helloworld的頁面,不僅代碼復雜了許多,而且這些代碼只是整個項目中最關鍵的部分,這個代碼還需要web.xml的支持,需要部署在Tomcat上才能運行,部署之前還需要先進行編譯...
package com.example.demo1;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
@WebServlet(name = "helloServlet", value = "/hello-servlet") //這個注解表示該servlet關聯(lián)到/hello-servlet這個路徑
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");//設置響應的類型為html
PrintWriter out = response.getWriter(); //使用printWriter進行響應流的輸出
out.println("hello world!"); //在響應流中寫入helloworld
}
}
java的servlet在使用注解后已經簡便了很多,但還是比不上Flask。
小結
在開發(fā)的輕便程度上,python的Flask可謂是一騎絕塵,正因如此它也是很多 python 學習人員的首選python web框架。所以python后端的初學者(其實java后端初學者也可以先從Flask入門再轉java后端)最好先對Flask框架進行學習。網上也不乏有優(yōu)秀的Flask課程,W3Cschool也提供了優(yōu)質的Flask手冊,小伙伴們可以前往進行學習。喜歡視頻課的同學也可以選擇我們的新課程(點擊圖片跳轉到該課程):
快來學習Flask吧!