Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。

Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

下载安装flask依赖

1
2
3
4
pip install Flask
pip install Flask-Cors
pip install Flask-Migrate
pip install Flask-SQLAlchemy

flask的入门使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#导包
from flask import Flask,redirect,url_for,jsonify

#建立flask对象
app = Flask(__name__)

#使用flask路由器route,指定网址和控制器
@app.route('/')
def index():
return 'hello python'

#使用程序入口,将flask应用启动,port参数用来调整端口,默认端口是5000
if __name__ == '__main__':
app.run(debug=True) #debug=True测试

flask的路由传参

1
2
3
4
@app.route('/hello/<id>')
def hello(id):
print(id)
return '123 世界 参数%s'%id

flask的跳转

flask有两种跳转方式,一种是根据网址跳转,一种是根据函数名跳转

1
2
3
4
5
#使用重定向模块跳转
@app.route('/re')
def re():
#redirect根据网址进行跳转
return redirect('http://okwzh.cn')
1
2
3
4
5
6
7
#使用url_for来实现简单的站内跳转,参数是指定路由函数名
@app.route('/url')
def url():
#redirect根据函数名跳转
return redirect(url_for('re'))
#跳转加参数
#return redirect(url_for('hello',id=1))

flask返回json类型

1
2
3
4
5
6
7
8
9
10
11
12
13
#返回json数据
@app.route('/json')
def re_json():
json_dict = {
'id':10,
'title':'王增辉',
'content':'这是json类型'
}
return jsonify(json_dict)

#解决中文乱码问题,让中文正常显示
#访问之后我们发现返回的是json类型存在编码问题,于是我们在配置上添加
app.config['JSON_AS_ASCII'] = False

flask的钩子方法及使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#第一次请求前
@app.before_first_request
def brfore_first_request():
print('这是第一次请求之前调用的方法')

#每次请求前
@app.before_request
def before_request():
print('每次请求之前调用的方法')

#每次请求之后
@app.after_request
#必须传响应参数,将响应内容返回
def after_request(response):
print('每次请求之后调用的方法')
return response


#在请求之后,调用服务器出现的错误信息
@app.teardown_request
def teardown_request(e):
print('服务器出现的错误是%s'%str(e))

flask添加配置文件的三种方式

1.从配置文件里加载配置
创建一个config.ini的文件,里面存放配置信息
app.config.from_pyfile(‘config.ini’)

2.从环境变量中加载配置
app.config.from_envvar(‘app_config’)

3.从配置对象来加载配置

1
2
3
4
5
6
#建立一个配置类
class Config:
DEBUG = True
JSON_AS_ASCII = False

app.config.from_object(Config)

flask统一对状态码捕获异常

1
2
3
4
5
6
7
8
#flask统一对状态码捕获异常
@app.errorhandler(405)
def get_error(e):
return '这个接口不能被get获取到,只能被post获取'

@app.errorhandler(404)
def get_error2(e):
return '网页不存在'

评论





载入天数...载入时分秒...

Blog content follows the Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) License

Use WZH as theme, total visits times