一、Flask简单介绍
Python做Web开发常用框架之一,通常来说,大型项目用Django,小型项目用Flask。著名的网飞(Netflix)也是使用Flask开发。
Flask是轻量框架,本身带有Werkzeug(用于路由解析)和Jinja2(用于模板渲染),同时Flask有非常丰富的第三方库,需要什么就安装什么,所以自身是比较小巧的。
二、项目创建(进入调试模式/热部署)
新建项目时选择Flask(初次创建时会下载一些包)
创建好的项目如下:
其中,static是用来放CSS、JavaScript等静态资源,templates是用来放HTML等渲染模板。
右侧代码app = Flask(__name__)把Flask框架导入进来,赋给app,所以后面就可以使用变量app来操作Flask框架。
代码@app.route('/')是进行路由解析,即后续我们访问http://127.0.0.1:5000/会默认解析到函数hello_world()。
学过Java Web这些应该都比较清楚。
运行程序
右键运行或者右上角点运行按钮,会出现下面结果,点击下面的链接或者去浏览器输入链接,可以访问网站(路由解析到hello_world函数)
开启热部署/调试模式
对代码进行修改后,都需要重新运行才能看见修改的效果,而开启调试模式可以即时看到修改效果(。
PyCharm 专业版:
PyCharm 社区版(也可以按专业版方法)
出现下面样子,表示开启成功:
三、路由解析
前面说过,@app.route('/')是对默认路径进行解析http://127.0.0.1:5000/,如果对Java Web有了解就知道,我们可以携带参数、修改路径等等。
修改路径
传递字符串参数
传递整型参数
传递浮点数类型
四、渲染模板
写网站一般都会用到HTML,Python开发也不例外,我们会将HTML放在templates文件夹下,使用Jinja2进行渲染。
返回HTML
结果:
向HTML传递参数
传递的参数直接加在render_template后面,参数名称前面是HTML里访问名,后面是当前模块里的变量名。
HTML中使用Jinjia2的语句进行访问:
访问普通变量:{{ 传递的变量名 }}
迭代:以{% for xx in xx %}开始,以{% endfor %}结束。
判断:以{% if %}开始,以{% endif %}结束。