first flask project hello
编写Hello程序前,需要搭建好Flask 编程环境,请参考上篇博客flask环境搭建http://blog.csdn.net/fchentianbao/article/details/49949877
第一个Hello程序:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "<h1>hello Flask</h1>"
if __name__ == '__main__':
app.run(debug=True)
简单吧,仅仅几行代码,一个web app 程序完成了,把上面的代码保存为hello.py, 然后运行看看效果。
cd D:\htmldemo\flaskwebsample //cd 到工程目录
D:\htmldemo\flaskwebsample>venv\scripts\activate //激活python虚拟环境
(venv) D:\htmldemo\flaskwebsample>python hello.py // 运行hello
* Running on http://127.0.0.1:5000/ (Press CTRL+C to )
* Restarting with stat
运行后,打开浏览器输入http://127.0.0.1:5000/查看效果如下:
代码分析
from flask import Flask
从flask库导入Flask 对象
app = Flask(__name__)
声明一个Flask对象
@app.route('/')
def index():
return "<h1>hello Flask</h1>"
编写路由函数,对http://127.0.0.1:5000/请求做出响应
@利用了python的装饰器模式,进行函数回掉
if __name__ == '__main__':
app.run(debug=True)
运行服务,监听http请求。
web应用本质
1.浏览器发送一个Http请求
2.服务器收到请求生成html
3.服务器把生成的http头和Html发送给浏览器
4.浏览器根据服务器发送的http头和html进行渲染呈现
FlaskWeb处理
app.run()启动服务,监听http请求,当收到浏览器的请求时,根据请求URL分发给对应的路由(@app.route(‘/’))作出响应,路由返回Response对象或URL地址。
Hello程序当接受到(http://127.0.0.1:5000/),Flask把请求分发给index()函数处理,index函数返回 reponse对象
后续
如果我们的路由函数都返回像 index 里的Html字符串,那样的话代码很难维护,且重复工作较大,为了解决这个问题,需要利用模板文件自动生成Html,Flask框架自带jinja2模板,下篇Flask模板jinjia2