七天学会flask(一)---一个最小的flask应用(第一天)
1.一个最小的flask应用
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
将代码保存为app.py文件,然后使用python命令运行该脚本
python app.py
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
现在,在浏览器里输入URL http://127.0.0.1:5000/ 点击回车,浏览器里会显示Hello World! 字样。
下面是对这些知识的整理和说明:
1、面向对象
Flask是一个类,app是这个类的实例,也可以说是这个类创建出来的对象,在创建app这个对象时,需要传入参数import_name,通常,我们使用__name__(模块的一个全局变量,表示模块名称)
2、装饰器
route是一个装饰器,在本示例中,用来装饰函数hello_world,当请求的path 是 / 时,程序用函数hello_world来处理这个请求,关于请求的path,可以参考这篇文章 todo
3、服务器监听设置
当我们启动这个程序后,在最底层,其实是一个TCP服务端程序,也就是一个socket服务,socket服务在绑定host和port时存在这样的机制,如果你希望这个socket只能本本机的客户端访问,那么host设置成127.0.0.1,如果希望所有机器都能访问,需要设置成0.0.0.0。
端口号默认使用5000, 你也可以改成其他端口号,很随意,只要不超过65535即可,但是要注意,不要选择那些已经被其他服务使用的端口号,否则会报错
Address already in use
4、自动加载技术--reload
自动加载技术在web开发中应用很广泛,设想,你正在编写一个服务,每写完一段代码,都需要进行调试,有时仅仅是修改了一行代码,如果为了测试代码,不停的重启服务,着实让人烦恼。
自动加载技术会监测项目里文件的修改情况,一旦发现文件有修改,就会重新加载这个文件,相当于重新import这个模块,这样,你的每一次改动都会在保存后生效而不需要你重启服务。
开启flask自动加载只需要将debug参数设置为True,flask将以调试模式启动
if __name__ == '__main__': app.run(host='0.0.0.0', port=8899, debug=True)
启动服务后,可以在浏览器里访问http://127.0.0.1:8899/ ,浏览器里显示Hello World!
然后将hello_world里return的内容修改为"Hello World! again"。观察服务,一定会重新启动,出现类似下面的提示信息
* Detected change in 'D:\\mypythonproject\\flask\\flask入门\\app.py', reloading * Restarting with stat * Debugger is active! * Debugger PIN: 576-070-623
再一次在浏览器里访问http://127.0.0.1:8899/ ,浏览器里显示的将是Hello World! again