麻雀虽小,五脏俱全——python web框架Flask介绍

2022-12-22 17:59:51 浏览数 (4023)

对于一个后端的初学者而言,小编觉得其实学习什么语言什么框架对初学者来说应该是一种负担。为什么这么说呢,因为初学者往往不知道什么是请求什么是响应,更不必说session和cookie了。所以对于后端的初学者而言,先学习一种简单的功能完备的框架可以让初学者对整个web应用的开发有个简单而全面的了解。而今天小编要介绍的,是一款轻量级的python web开发框架,他就是Flask。

介绍

Flask是一个轻量级的web应用框架,它拥有高度的可定制性。相较于其他同类型的框架,它的使用更加灵活轻便。而且由于它高度封装了python的服务器网关接口,使得它的代码更加简洁易懂,新手也可以很容易进行上手。

应用

python广受诟病的一点就是其性能并不如java等编译型语言,flask作为一个轻量型的web框架在性能优化上面也不如同为python框架的Django和Tornado。但是因为它轻量且开发快速,所以用来构建小型的web应用程序绰绰有余,利用flask来进行原型开发也是一个不错的选择(苦恼于毕业设计的计算机专业学生终于有了更轻松的选择)。

比较

这是Flask的一个简单的返回helloworld的页面,只有一个 ​app.py​ 文件,直接解释执行这个python文件就能使用这个web应用。

from flask import Flask

app = Flask(__name__)  # 初始化一flask应用


@app.route('/hello') # 这个注解表示如果传入路径是/hello的话执行hello_world函数
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关联到/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。

小结

在开发的轻便程度上,python的Flask可谓是一骑绝尘,正因如此它也是很多 python 学习人员的首选python web框架。所以python后端的初学者(其实java后端初学者也可以先从Flask入门再转java后端)最好先对Flask框架进行学习。网上也不乏有优秀的Flask课程,W3Cschool也提供了优质的Flask手册,小伙伴们可以前往进行学习。喜欢视频课的同学也可以选择我们的新课程(点击图片跳转到该课程):

Python Flask 开发 Web 服务

快来学习Flask吧!