一、安装Flask
本文这里直接是在Pycharm上安装的Flask框架, 在终端上,执行如下命令,安装Flask:
pip install Flask
安装成功后,会有Successfully installed字样输出,如下所示:

二、创建一个简单示例
代码如下所示:
# coding = urf-8
from flask import Flask
app = Flask(__name__)
app.debug=True
@app.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
app.run()
注意,这里有一句话:“app.debug=True”,这句话是开启Flask的调试模式,如果不开启,很多调试信息都不会输出。这句话可以放在app.run()中,如下所示:
app.run(debug=True)
这里运行起来后,在调试窗口下可以看到如下输出:

在浏览器中访问这个网址,如下:

三、Flask说明
①如何指定Flask绑定特定IP,因为默认绑定的是127.0.0.1?实现方法其实就是在app.run()函数中指定即可,如下所示:
app.run(host='0.0.0.0', debug=True)
②Flask的路由是由@app.route(‘path’)中指定path来决定的。例如如下所示的路由:
@app.route('/hello')
@app.route('/get.html')
@app.route('/post.html')
默认情况下,路由的方法只支持Get请求,如果要支持其他请求,需要在route里面增加参数,如下所示设置请求支持Get和Post请求:
@app.route('/request', methods = ['GET', 'POST'])
这里不得不提路由里面的变量,比如如下代码:
@app.route('/system/<string:_str>')
def show_request_param(_str):
print(_str)
return ''.join(_str)
然后在浏览器中随意输入网址,例如如下所示:
http://127.0.0.1:5000/system/abcdef
浏览器中自然就出现了abcdef,如下所示:

这里string:_str成为路径变量,Flask中支持的路径变量总结一下如下表所示:
| 转换器 | 作用 |
|---|---|
| string | 默认选项,接受除了斜杠外的字符串 |
| int | 接受整数 |
| float | 接受浮点数 |
| path | 和string一样,但是可以接受斜杠字符串 |
③URL跳转,比如有时候某一个url请求,在后台处理时,需要跳转到另一个接口上实现,在Flask中可以使用url_for方法,在Flask中重定向代码用redirect函数,代码如下所示:
from flask import Flask, url_for, redirect
app = Flask(__name__)
@app.route('/test2')
def test_sub():
return 'hello world'
@app.route('/test1')
def test_main():
return redirect(url_for('test2'))
if __name__ == '__main__':
app.run(debug=True)
这里由test1重定向到url_for构造出来的新的url地址test2上去,然后返回"hello world"。网页上测试如下所示:

这样可以很方便的实现变相的多级路由功能了。
④去除Get请求url后面的参数,示例代码如下所示:
@app.route('/request',methods=['GET','POST'])
def test_main():
if request.method == 'GET':
get_one=request.args.get('one','')
print(get_one)
else:
get_json=request.json
print(get_json)
return "Ok"
然后在浏览器中输入url如下所示:
http://127.0.0.1:5000/request?one=aaabbb
然后看get_one的值,如下所示:

取Json方法一样的,这里不赘述了。
四、其他说明
例如Flask模板、Cookie等用法,这里不收录,因为学习Flask是用来提供restful接口的,这些暂时用不上。
本文介绍了如何在Pycharm中安装Flask,并通过一个简单的示例演示了Flask的基本使用,包括路由设置、调试模式、URL变量、URL跳转以及处理Get请求。还提到了Flask绑定特定IP的方法。

915

被折叠的 条评论
为什么被折叠?



