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