说flask框架之前,必须得提一下web框架,他的作用是为了利用互联网交流工作文档,我们为什么要使用框架,因为框架的稳定性和可扩展性强并且可以降低开发难度,提高开发效率。总的来说就是避免做无用功,重复做。
在python中常用的web框架有flask,django,tornado
flask框架:
flask框架是轻量级web开发框架。flask本身就相当于内核,其他几乎所有的功能都要用到扩展,都需要用第三方的扩展来实现。
其WSGI工具采用Werkzeug(路由模块),模板引擎则使用Jinja。这两个是flask框架的核心。
flask框架的常用扩展包:
扩展列表:http://flask.pocoo.org/extensions/
在写flask的框架的时候装饰器的作用是将路由映射到视图函数index,flask应用程序实例的run方法启动WEB服务器,在程序运行过程中,程序实例中会使用url_map将装饰器路由和视图的对应关系保存起来。
flask程序实例在创建的时候,需要默认传入当前flask程序所指定的包(模块)。
app=Flask(__name__):flask程序所在的包,传__name__就可以决定flask在访问静态文件是查找的路径
flask程序运行的时候,可以给flask是指相关配置,比如debug :默认为false----程序代码修改后可以自动重启服务器,在服务器出现相关错误的时候可以直接将错误信息进行掏出到控制台打印。
路由的基本定义:
指定路由地址 @app.route('/demo1') def demo1(): return 'demo1'
有时我们需要将同一类URL映射到同一个视图函数处理,比如:使用同一个函数来显示不同用户的信息
@app.route('/user/<user_id>') def demo1(user_id): return 'demo1 %s' %user_id
#路由传递参数默认为string处理,也可以指定参数的类型 @app.route('/user/<int:user_id>') def demo1(user_id): return 'demo1 %s' %user_id
#这里指定的int,尖括号中的内容是动态的,再次暂时可以理解为接收int类型的值,实际上int代表使用IntegerConverter去处理url传入的参数
指定请求方式:
GET,OPTIONS,HEAD
@app.route('/user’,methods=['get','post']) def demo1(user_id): return request.method