麻雀虽小,五脏俱全——python web框架Flask介绍
对于一个后端的初学者而言,小编觉得其实学习什么语言什么框架对初学者来说应该是一种负担。为什么这么说呢,因为初学者往往不知道什么是请求什么是响应,更不必说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手册,小伙伴们可以前往进行学习。喜欢视频课的同学也可以选择我们的新课程(点击图片跳转到该课程):
快来学习Flask吧!